Compare commits
27 commits
master
...
oneplus/sc
Author | SHA1 | Date | |
---|---|---|---|
9e29339de8 | |||
a6d7a7b04c | |||
159b4f4826 | |||
5ad595d525 | |||
f170364400 | |||
38cb13e81e | |||
c2012c8ccf | |||
846f6fdbc3 | |||
0fe0536073 | |||
c8f468585a | |||
d5714a3e84 | |||
eb10c1c3af | |||
d73fca4bf2 | |||
7d4d14795f | |||
4091d2aeab | |||
6404b1e356 | |||
4469ec41f7 | |||
d31d3beb06 | |||
e64ef40ed3 | |||
73a035567c | |||
11fb88b3cc | |||
f5bff2f354 | |||
615dce3e41 | |||
a66a3015cd | |||
ba4ac7f1f4 | |||
ed6489c559 | |||
a8b23e0189 |
45 changed files with 717 additions and 2048 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -1,5 +0,0 @@
|
||||||
temp/
|
|
||||||
result
|
|
||||||
*.png
|
|
||||||
*.jpg
|
|
||||||
*.bak
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
### Dotfiles for Me - Migrating to Nix
|
### Dotfiles for Me - Migrating to Nix
|
||||||
|
|
||||||
Heavy wip, not ready for use.
|
Heavy wip, not ready for use.
|
||||||
|
|
||||||
Will eventually manage my servers and computers.
|
Will eventually manage my servers and computers.
|
||||||
|
|
|
@ -11,10 +11,10 @@ if [[ "$mute" == "" ]]; then
|
||||||
# Change the volume
|
# Change the volume
|
||||||
$(wpctl set-volume @DEFAULT_AUDIO_SINK@ $@)
|
$(wpctl set-volume @DEFAULT_AUDIO_SINK@ $@)
|
||||||
|
|
||||||
# Query Pipewire and Parse Volume as an Int
|
# Query Pipewire and Parse Volume as an Int
|
||||||
volume="$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{print $2}')"
|
volume="$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{print $2}')"
|
||||||
vol=${volume//.}
|
vol=${volume//.}
|
||||||
|
|
||||||
# Send the notification
|
# Send the notification
|
||||||
$(dunstify -h int:value:"$vol" Volume: $vol -h string:x-dunst-stack-tag:volume)
|
$(dunstify -h int:value:"$vol" Volume: $vol -h string:x-dunst-stack-tag:volume)
|
||||||
$(echo $vol > ${XDG_CACHE_HOME:-~/.cache}/eww/vol)
|
$(echo $vol > ${XDG_CACHE_HOME:-~/.cache}/eww/vol)
|
||||||
|
|
|
@ -1,63 +1,60 @@
|
||||||
$color-primary: #c6a0f6;
|
|
||||||
$color-sec: #f5bde6;
|
|
||||||
$color-bg: #24273a;
|
|
||||||
$color-plane: #5a2d85;
|
|
||||||
$color-light: #5b6078;
|
|
||||||
|
|
||||||
.bar {
|
.bar {
|
||||||
background-color: $color-bg;
|
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
border: 3px solid $color-light;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.bat {
|
.bat {
|
||||||
color: $color-primary;
|
color: #cac;
|
||||||
|
|
||||||
}
|
}
|
||||||
.circle {
|
.circle {
|
||||||
margin-top: -2.5rem;
|
margin-top: -2.5rem;
|
||||||
color: $color-primary;
|
color: #cac;
|
||||||
}
|
}
|
||||||
|
|
||||||
.workspace-entry {
|
.workspace-entry {
|
||||||
border: 2px solid $color-primary;
|
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
|
border-width: 2px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #cac;
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
|
|
||||||
|
&.empty {
|
||||||
|
|
||||||
&.empty {}
|
}
|
||||||
|
|
||||||
&.occupied{
|
&.occupied{
|
||||||
background-color: $color-light;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&.current {
|
&.current {
|
||||||
background-color: $color-plane;
|
background-color: #536;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.power {
|
.power {
|
||||||
color: $color-primary;
|
color: #cac;
|
||||||
font-size: 18;
|
font-size: 20;
|
||||||
padding-right: 3px;
|
padding-top: 2px;
|
||||||
padding-bottom: 2px;
|
padding-right: 4px;
|
||||||
|
padding-left: 0px;
|
||||||
|
padding-bottom: 4px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
// margin-left: 1px;
|
margin-left: 1px;
|
||||||
margin: 5px 2px;
|
background-color: #515;
|
||||||
background-color: $color-plane;
|
|
||||||
border: 2px solid;
|
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cal {
|
|
||||||
background-color: $color-primary;
|
|
||||||
border-radius: 8px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.clock {
|
.clock {
|
||||||
color: $color-primary;
|
background-color: #536;
|
||||||
background-color: $color-plane;
|
border-width: 2px;
|
||||||
border: 2px solid $color-primary;
|
border-style: solid;
|
||||||
border-radius: 3px;
|
border-color: #cac;
|
||||||
|
border-radius: 5px;
|
||||||
|
color: #cac;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
|
border-radius: 3px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
;; VARIABLE DEFINITIONS
|
;;;; (defpoll time :interval "1s" 'date +%s')
|
||||||
|
|
||||||
|
(defwidget clock []
|
||||||
|
(box :orientation "vertical"
|
||||||
|
:halign "center"
|
||||||
|
:valign "end"
|
||||||
|
(box :class "clock" {formattime(EWW_TIME, "%H")})
|
||||||
|
(box :class "clock" {formattime(EWW_TIME, "%M")})
|
||||||
|
))
|
||||||
|
|
||||||
;; Audio
|
|
||||||
(deflisten vol "cat ~/.cache/eww/vol && inotifywait -q -m -e close_write ~/.cache/eww/vol | while read -r filename event; do cat ~/.cache/eww/vol; done")
|
|
||||||
(defpoll micvol :interval "1m" "wpctl get-volume @DEFAULT_AUDIO_SOURCE@ | awk '{print $2}'")
|
|
||||||
|
|
||||||
;; Workspace Stuff
|
|
||||||
(deflisten workspaces :initial "[]" "bash ~/.config/eww/scripts/get-workspaces")
|
(deflisten workspaces :initial "[]" "bash ~/.config/eww/scripts/get-workspaces")
|
||||||
(deflisten current_workspace :initial "..." "bash ~/.config/eww/scripts/get-active-workspace")
|
(deflisten current_workspace :initial "..." "bash ~/.config/eww/scripts/get-active-workspace")
|
||||||
(deflisten urgent_workspace :initial "..." "bash ~/.config/eww/scripts/get-urgent-workspaces")
|
(deflisten urgent_workspace :initial "..." "bash ~/.config/eww/scripts/get-urgent-workspaces")
|
||||||
|
@ -19,28 +21,13 @@
|
||||||
(label :text "${workspace.id}")
|
(label :text "${workspace.id}")
|
||||||
))))))
|
))))))
|
||||||
|
|
||||||
;; Screen
|
|
||||||
(deflisten backlight "brightnessctl g && inotifywait -q -m -e modify /sys/class/backlight/intel_backlight/actual_brightness | while read -r filename event; do cat /sys/class/backlight/intel_backlight/actual_brightness; done")
|
|
||||||
|
|
||||||
|
(defwidget circle [val prog sty char]
|
||||||
;; Widgets
|
|
||||||
|
|
||||||
(defwidget clock []
|
|
||||||
(eventbox
|
|
||||||
:onhover "eww open cal"
|
|
||||||
(box :orientation "vertical"
|
|
||||||
:halign "center"
|
|
||||||
:valign "end"
|
|
||||||
(box :class "clock" {formattime(EWW_TIME, "%H")})
|
|
||||||
(box :class "clock" {formattime(EWW_TIME, "%M")})
|
|
||||||
)))
|
|
||||||
|
|
||||||
(defwidget circle [val prog sty char]
|
|
||||||
(box :halign "center"
|
(box :halign "center"
|
||||||
:orientation "vertical"
|
:orientation "vertical"
|
||||||
:valign "end"
|
:valign "end"
|
||||||
(circular-progress :value prog
|
(circular-progress :value prog
|
||||||
:start-at 10
|
:start-at 10
|
||||||
:clockwise false
|
:clockwise false
|
||||||
:thickness 3
|
:thickness 3
|
||||||
:width 30
|
:width 30
|
||||||
|
@ -51,88 +38,60 @@
|
||||||
(box :class "circle" :style sty char)))
|
(box :class "circle" :style sty char)))
|
||||||
|
|
||||||
(defwidget battery []
|
(defwidget battery []
|
||||||
(circle :prog {EWW_BATTERY.BAT1.capacity * (77778 /100000)}
|
(circle :prog {EWW_BATTERY.BAT1.capacity * (77778 /100000)}
|
||||||
:sty "color: ${EWW_BATTERY.BAT1.status == 'Charging' ? '#1a1': EWW_BATTERY.BAT1.capacity < 20 ? '#a11': '#cac'};"
|
:sty "color: ${EWW_BATTERY.BAT1.status == 'Charging' ? '#1a1': EWW_BATTERY.BAT1.capacity < 20 ? '#a11': '#cac'};"
|
||||||
:val {EWW_BATTERY.BAT1.capacity}
|
:val {EWW_BATTERY.BAT1.capacity}
|
||||||
:char ""))
|
:char ""))
|
||||||
|
|
||||||
(defwidget volume []
|
(deflisten vol "cat ~/.cache/eww/vol && inotifywait -q -m -e close_write ~/.cache/eww/vol | while read -r filename event; do cat ~/.cache/eww/vol; done")
|
||||||
(eventbox
|
|
||||||
:onclick "hyprctl dispatch exec 'pavucontrol -t 3'"
|
(defwidget volume []
|
||||||
:onscroll "if [ {} == 'up' ]; then /etc/nixos/config/dunst/scripts/volumeNotify.sh 1%+; else /etc/nixos/config/dunst/scripts/volumeNotify.sh 1%-; fi"
|
(circle :prog {vol * 7/10}
|
||||||
(circle :prog {vol * 7/10}
|
:sty "font-size: 12; margin-right: 2px;"
|
||||||
:sty "font-size: 12; margin-right: 2px;"
|
:val {vol + 1 - 1}
|
||||||
:val {vol + 1 - 1}
|
:char ""))
|
||||||
:char "")))
|
|
||||||
|
(defpoll micvol :interval "1m" "wpctl get-volume @DEFAULT_AUDIO_SOURCE@ | awk '{print $2}'")
|
||||||
|
|
||||||
(defwidget mic []
|
(defwidget mic []
|
||||||
(eventbox
|
(circle :prog {micvol * 70}
|
||||||
:onclick "hyprctl dispatch exec 'pavucontrol -t 4'"
|
:sty "margin-left: 1px;"
|
||||||
:onscroll "if [ {} == 'up' ]; then wpctl set-volume -l 1 @DEFAULT_SOURCE@ 1%+; else wpctl set-volume @DEFAULT_SOURCE@ 1%-; fi"
|
:val {micvol *100}
|
||||||
(circle :prog {micvol * 70}
|
:char ""))
|
||||||
:sty "margin-left: 1px;"
|
|
||||||
:val {micvol *100}
|
(deflisten backlight "brightnessctl g && inotifywait -q -m -e modify /sys/class/backlight/intel_backlight/actual_brightness | while read -r filename event; do cat /sys/class/backlight/intel_backlight/actual_brightness; done")
|
||||||
:char "")))
|
|
||||||
|
|
||||||
(defwidget brightness []
|
(defwidget brightness []
|
||||||
(eventbox
|
(circle :prog {(backlight / 960) * 7/10}
|
||||||
:onscroll "if [ {} == 'up' ]; then brightnessctl -d intel_backlight set 1%+; else brightnessctl -d intel_backlight set 1%-; fi"
|
:sty "font-size: 12; margin-right: 3px;"
|
||||||
(circle :prog {(backlight / 960) * 7/10}
|
:val {round( backlight / 960, 0) - 1}
|
||||||
:sty "font-size: 12; margin-right: 3px;"
|
:char ""))
|
||||||
:val {round( backlight / 960, 0) - 1}
|
|
||||||
:char "")))
|
|
||||||
|
|
||||||
(defwidget power []
|
(defwidget power []
|
||||||
(eventbox
|
(box :class "power" :valign "end" "⏻"))
|
||||||
:onclick "hyprctl dispatch exec 'wlogout'"
|
|
||||||
(box :class "power" :valign "end" "⏻")))
|
|
||||||
|
|
||||||
(defwidget tray []
|
|
||||||
(systray :orientation "v" :icon-size 20))
|
|
||||||
|
|
||||||
|
|
||||||
;; Upper Level Widgets
|
|
||||||
|
|
||||||
|
|
||||||
(defwidget bar []
|
(defwidget bar []
|
||||||
(centerbox :orientation "vertical"
|
(centerbox :orientation "vertical"
|
||||||
:halign "center"
|
:halign "center"
|
||||||
:space-evenly false
|
:space-evenly false
|
||||||
(_workspaces)
|
(_workspaces)
|
||||||
(clock)
|
(clock)
|
||||||
(box :orientation "vertical" :spacing -25 :valign "end"
|
(box :orientation "vertical" :spacing -25 :valign "end"
|
||||||
(brightness)
|
(brightness)
|
||||||
(mic)
|
(mic)
|
||||||
(volume)
|
(volume)
|
||||||
(battery)
|
(battery)
|
||||||
(tray)
|
(power))))
|
||||||
(power))))
|
|
||||||
|
|
||||||
(defwidget cal []
|
|
||||||
(box
|
|
||||||
:class "cal"
|
|
||||||
(eventbox
|
|
||||||
:onhoverlost "eww close cal"
|
|
||||||
(calendar))))
|
|
||||||
|
|
||||||
|
|
||||||
;; Windows
|
|
||||||
|
|
||||||
(defwindow bar
|
(defwindow bar
|
||||||
:monitor 0
|
:monitor 0
|
||||||
:geometry (geometry :x "4px"
|
:geometry (geometry :x "4px"
|
||||||
:height "98%"
|
:y "1%"
|
||||||
:anchor "left center")
|
:width "2.5%"
|
||||||
:stacking "fg"
|
:height "98%"
|
||||||
:exclusive true
|
:anchor "left center")
|
||||||
:class "bar"
|
:stacking "fg"
|
||||||
|
:exclusive true
|
||||||
|
:class "bar"
|
||||||
(bar))
|
(bar))
|
||||||
|
|
||||||
(defwindow cal
|
|
||||||
:monitor 0
|
|
||||||
:geometry (geometry :x "4px"
|
|
||||||
:anchor "left center")
|
|
||||||
:stacking "fg"
|
|
||||||
:exclusive false
|
|
||||||
:class "bar"
|
|
||||||
(cal))
|
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
|
|
||||||
hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
|
hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
|
||||||
|
|
||||||
socat -u UNIX-CONNECT:/run/user/1000/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
|
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
|
||||||
stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'
|
stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
[cursor]
|
|
||||||
color=181926 f4dbd6
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
foreground=cad3f5
|
|
||||||
background=24273a
|
|
||||||
|
|
||||||
regular0=494d64
|
|
||||||
regular1=ed8796
|
|
||||||
regular2=a6da95
|
|
||||||
regular3=eed49f
|
|
||||||
regular4=8aadf4
|
|
||||||
regular5=f5bde6
|
|
||||||
regular6=8bd5ca
|
|
||||||
regular7=b8c0e0
|
|
||||||
|
|
||||||
bright0=5b6078
|
|
||||||
bright1=ed8796
|
|
||||||
bright2=a6da95
|
|
||||||
bright3=eed49f
|
|
||||||
bright4=8aadf4
|
|
||||||
bright5=f5bde6
|
|
||||||
bright6=8bd5ca
|
|
||||||
bright7=a5adcb
|
|
||||||
|
|
||||||
16=f5a97f
|
|
||||||
17=f4dbd6
|
|
||||||
18=c6a0f6
|
|
||||||
|
|
||||||
selection-foreground=cad3f5
|
|
||||||
selection-background=454a5f
|
|
||||||
|
|
||||||
search-box-no-match=181926 ed8796
|
|
||||||
search-box-match=cad3f5 363a4f
|
|
||||||
|
|
||||||
jump-labels=181926 f5a97f
|
|
||||||
urls=8aadf4
|
|
|
@ -1,18 +0,0 @@
|
||||||
# -*- conf -*-
|
|
||||||
|
|
||||||
[main]
|
|
||||||
include=~/.config/foot/catppuccin-macchiato.ini
|
|
||||||
|
|
||||||
font=monospace:size=10
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
alpha = .65
|
|
||||||
|
|
||||||
[key-bindings]
|
|
||||||
spawn-terminal=Control+Shift+n
|
|
||||||
|
|
||||||
# Fixes the SHIFT+ENTER escape sequence from showing
|
|
||||||
# Git Issue: https://codeberg.org/dnkl/foot/issues/1358
|
|
||||||
[text-bindings]
|
|
||||||
\x0d = Control+Return Shift+Return Control+Shift+Return
|
|
||||||
\x20 = Shift+space
|
|
|
@ -1,39 +1,32 @@
|
||||||
# Binding Config File for Hyprland
|
# Binding Config File for Hyprland
|
||||||
|
|
||||||
# Main Bindings
|
# Main Bindings
|
||||||
|
#
|
||||||
|
# Foot, you done goofed
|
||||||
|
bind=ALT,RETURN,exec,foot
|
||||||
|
#bind=ALT,RETURN,exec,kitty
|
||||||
|
|
||||||
# Programs
|
|
||||||
bind=ALT,A,exec,footclient nvim
|
|
||||||
bind=ALT,B,exec,swaylock
|
|
||||||
bind=ALT,E,exec,dolphin
|
|
||||||
bind=ALT,G,exec,${XDG_CONFIG_HOME:-~/.config}/hypr/plumbing.sh
|
|
||||||
bind=ALT,C,exec,${XDG_CONFIG_HOME:-~/.config}/hypr/plumbing.sh clip
|
|
||||||
bind=ALT,RETURN,exec,footclient
|
|
||||||
bindr=ALTSHIFT,RETURN,exec,pkill wofi || wofi -S drun --allow-images
|
|
||||||
|
|
||||||
|
|
||||||
# Basic Actions
|
|
||||||
bind=ALT,Q,killactive,
|
bind=ALT,Q,killactive,
|
||||||
bind=ALT,V,togglefloating,
|
|
||||||
bind=ALTSHIFT,M,fullscreen,0
|
|
||||||
bind=SUPER,M,exec,hyprctl dispatch exit 0
|
bind=SUPER,M,exec,hyprctl dispatch exit 0
|
||||||
|
bind=ALT,E,exec,dolphin
|
||||||
# Screenshots
|
bind=ALT,V,togglefloating,
|
||||||
bind=,Print,exec,slurp | grim -t jpeg -g - - | wl-copy
|
bindr=ALTSHIFT,RETURN,exec,pkill wofi || wofi -S drun --allow-images
|
||||||
bind=SHIFT,Print,exec,slurp | grim -t jpeg -g - Downloads/screenshot.jpeg
|
bind=ALTSHIFT,F,fullscreen,1
|
||||||
bind=SHIFTSUPER,Print,exec,hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | grim -t jpeg -g - - | wl-copy
|
bind=ALTSHIFT,M,fullscreen,0
|
||||||
bind=SUPER,Print,exec,hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | grim -g - Downloads/screenshot.jpeg
|
bind=,Print,exec,grim -g "$(slurp)" -t jpeg - | wl-copy
|
||||||
|
bind=SHIFT,Print,exec,grim -g "$(slurp)" -t jpeg Downloads/screenshot.jpeg
|
||||||
|
|
||||||
# trigger when the switch is toggled
|
# trigger when the switch is toggled
|
||||||
bindl=,switch:Lid Switch,exec,swaylock
|
bindl=,switch:Lid Switch,exec,swaylock --effect-greyscale
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Games
|
# Games
|
||||||
bind=ALTSHIFT,C,exec,steam-run "~/Documents/Games/Celeste/Celeste"
|
bind=ALTSHIFT,T,exec,gamescope -w 1280 -h 960 -F fsr -f -r 60 wine "/home/flyingstitchman/Documents/Games/Touhou 15 - Legacy of Lunatic Kingdom/th15.exe"
|
||||||
bind=ALTSHIFT,O,exec,osu\!
|
bind=ALTSHIFT,O,exec,osu-lazer
|
||||||
bind=ALTSHIFT,R,exec,steam-run "~/Documents/Games/factorio/bin/x64/factorio"
|
bind=ALTSHIFT,C,exec,"/home/flyingstitchman/Documents/Games/Celeste/Celeste"
|
||||||
bind=ALTSHIFT,S,exec,steam-run "~/Documents/Games/Stardew Valley/StardewValley"
|
bind=ALTSHIFT,S,exec,"/home/flyingstitchman/Documents/Games/Stardew Valley/StardewValley"
|
||||||
bind=ALTSHIFT,T,exec,gamescope -w 1280 -h 960 -f -r 60 wine "~/Documents/Games/Touhou 15 - Legacy of Lunatic Kingdom/th15.exe"
|
bind=ALTSHIFT,R,exec,"/home/flyingstitchman/Documents/Games/factorio/bin/x64/factorio"
|
||||||
|
|
||||||
|
|
||||||
# Window Moving
|
# Window Moving
|
||||||
|
@ -42,7 +35,7 @@ bindm=SUPER,mouse:273,resizewindow
|
||||||
|
|
||||||
# Quick Bindings
|
# Quick Bindings
|
||||||
bindle=,XF86MonBrightnessDown,exec,brightnessctl -d intel_backlight set 1%-
|
bindle=,XF86MonBrightnessDown,exec,brightnessctl -d intel_backlight set 1%-
|
||||||
bindle=,XF86MonBrightnessUp,exec,brightnessctl -d intel_backlight set +1%
|
bindle=,XF86MonBrightnessUp,exec,brightnessctl -d intel_backlight set +1%
|
||||||
|
|
||||||
bindle=,XF86AudioRaiseVolume,exec,${XDG_CONFIG_HOME:-~/.config}/dunst/scripts/volumeNotify.sh 1%+
|
bindle=,XF86AudioRaiseVolume,exec,${XDG_CONFIG_HOME:-~/.config}/dunst/scripts/volumeNotify.sh 1%+
|
||||||
bindle=,XF86AudioLowerVolume,exec,${XDG_CONFIG_HOME:-~/.config}/dunst/scripts/volumeNotify.sh 1%-
|
bindle=,XF86AudioLowerVolume,exec,${XDG_CONFIG_HOME:-~/.config}/dunst/scripts/volumeNotify.sh 1%-
|
||||||
|
@ -65,16 +58,6 @@ bind=ALTSHIFT,k,swapwindow, u
|
||||||
bind=ALTSHIFT,h,swapwindow, l
|
bind=ALTSHIFT,h,swapwindow, l
|
||||||
bind=ALTSHIFT,l,swapwindow, r
|
bind=ALTSHIFT,l,swapwindow, r
|
||||||
|
|
||||||
## Special Workspaces ##
|
|
||||||
|
|
||||||
# Firefox
|
|
||||||
bind=ALT,F,togglespecialworkspace,firefox
|
|
||||||
bind=ALTSHIFT,F,movetoworkspace,special:firefox
|
|
||||||
|
|
||||||
# Chat Programs
|
|
||||||
bind=ALT,S,togglespecialworkspace,chat
|
|
||||||
bind=ALTSHIFT,S,movetoworkspace,special:chat
|
|
||||||
|
|
||||||
# Switch Workspace Bindings
|
# Switch Workspace Bindings
|
||||||
bind=ALT,1,workspace,1
|
bind=ALT,1,workspace,1
|
||||||
bind=ALT,2,workspace,2
|
bind=ALT,2,workspace,2
|
||||||
|
@ -99,16 +82,24 @@ bind=ALTSHIFT,8,movetoworkspace,8
|
||||||
bind=ALTSHIFT,9,movetoworkspace,9
|
bind=ALTSHIFT,9,movetoworkspace,9
|
||||||
bind=ALTSHIFT,10,movetoworkspace,0
|
bind=ALTSHIFT,10,movetoworkspace,0
|
||||||
|
|
||||||
## Resizing Windows ##
|
# Submap for resizing windows
|
||||||
binde=SUPER,L,resizeactive,10 0
|
bind=ALT,R,submap,resize # will switch to a submap called resize
|
||||||
binde=SUPER,H,resizeactive,-10 0
|
|
||||||
binde=SUPER,K,resizeactive,0 -10
|
|
||||||
binde=SUPER,J,resizeactive,0 10
|
|
||||||
|
|
||||||
binde=SUPERSHIFT,L,resizeactive,50 0
|
submap=resize # will start a submap called "resize"
|
||||||
binde=SUPERSHIFT,H,resizeactive,-50 0
|
|
||||||
binde=SUPERSHIFT,K,resizeactive,0 -50
|
binde=,L,resizeactive,10 0
|
||||||
binde=SUPERSHIFT,J,resizeactive,0 50
|
binde=,H,resizeactive,-10 0
|
||||||
|
binde=,K,resizeactive,0 -10
|
||||||
|
binde=,J,resizeactive,0 10
|
||||||
|
|
||||||
|
binde=SHIFT,L,resizeactive,50 0
|
||||||
|
binde=SHIFT,H,resizeactive,-50 0
|
||||||
|
binde=SHIFT,K,resizeactive,0 -50
|
||||||
|
binde=SHIFT,J,resizeactive,0 50
|
||||||
|
|
||||||
|
bind=ALT,R,submap,reset # use reset to go back to the global submap
|
||||||
|
|
||||||
|
submap=reset # will reset the submap, meaning end the current one and return to the global one.
|
||||||
|
|
||||||
# Submap to disable all keybinds (for blender)
|
# Submap to disable all keybinds (for blender)
|
||||||
bind=ALT,U,submap,clean
|
bind=ALT,U,submap,clean
|
||||||
|
|
|
@ -1,24 +1,13 @@
|
||||||
# Executable Startup File for Hyprland
|
# Executable Startup File for Hyprland
|
||||||
|
#exec-once=uclampset -M 10 waybar
|
||||||
# Activity Watch
|
|
||||||
exec-once=aw-server
|
|
||||||
exec-once=awatcher
|
|
||||||
|
|
||||||
# Copy and Paste
|
|
||||||
exec-once=wl-paste -t text --watch clipman store --no-persist
|
|
||||||
|
|
||||||
# Desktop Rice
|
|
||||||
exec-once=eww open bar
|
exec-once=eww open bar
|
||||||
exec-once=fcitx5
|
|
||||||
exec-once=hyprpaper
|
|
||||||
exec-once=swayidle
|
exec-once=swayidle
|
||||||
|
exec-once=hyprpaper
|
||||||
# Notifications
|
exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
|
exec-once=dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus
|
||||||
exec-once=dunst
|
exec-once=dunst
|
||||||
exec-once=${XDG_CONFIG_HOME:-~/.config}/dunst/scripts/low-battery.sh
|
exec-once=${XDG_CONFIG_HOME:-~/.config}/dunst/scripts/low-battery.sh
|
||||||
|
exec-once=fcitx5
|
||||||
# Terminal
|
#exec-once=~/.config/hypr/portal.sh
|
||||||
exec-once=foot -s
|
exec-once=systemctl --user import-environment DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
|
exec-once=wl-paste -p --watch wl-copy -pc
|
||||||
# Systemdeeznuts
|
|
||||||
exec-once=dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus
|
|
||||||
|
|
|
@ -26,8 +26,8 @@ input {
|
||||||
sensitivity=.4
|
sensitivity=.4
|
||||||
accel_profile=adaptive
|
accel_profile=adaptive
|
||||||
|
|
||||||
touchpad {
|
touchpad {
|
||||||
natural_scroll=false
|
natural_scroll=false
|
||||||
disable_while_typing=false
|
disable_while_typing=false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,9 +36,9 @@ input {
|
||||||
general {
|
general {
|
||||||
gaps_in=3
|
gaps_in=3
|
||||||
gaps_out=5
|
gaps_out=5
|
||||||
border_size=4
|
border_size=3
|
||||||
col.active_border=0xffcc6a0f6
|
col.active_border=0xff7733cc
|
||||||
col.inactive_border=0xff494d64
|
col.inactive_border=0xff333333
|
||||||
|
|
||||||
layout=dwindle
|
layout=dwindle
|
||||||
}
|
}
|
||||||
|
@ -51,30 +51,34 @@ decoration {
|
||||||
passes=3
|
passes=3
|
||||||
ignore_opacity=false
|
ignore_opacity=false
|
||||||
new_optimizations=true
|
new_optimizations=true
|
||||||
noise=.03
|
|
||||||
vibrancy=.2
|
|
||||||
vibrancy_darkness=0.5
|
|
||||||
input_methods=true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Other
|
# Shadow
|
||||||
rounding=15
|
drop_shadow=0
|
||||||
inactive_opacity=.8
|
shadow_range=15
|
||||||
fullscreen_opacity=1 multiplier
|
shadow_render_power=2
|
||||||
|
shadow_ignore_window=1
|
||||||
|
col.shadow=0xdb331153
|
||||||
|
col.shadow_inactive=0x99333333
|
||||||
|
shadow_offset=3 2
|
||||||
|
|
||||||
|
# Other
|
||||||
|
rounding=15
|
||||||
|
inactive_opacity=.8
|
||||||
|
fullscreen_opacity=1 multiplier
|
||||||
}
|
}
|
||||||
|
|
||||||
animations {
|
animations {
|
||||||
enabled=true
|
enabled=true
|
||||||
|
|
||||||
|
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||||
|
|
||||||
bezier = fast, 0.41, 0.6, 0.02, 0.93
|
animation = windows, 1, 7, myBezier
|
||||||
|
|
||||||
animation = windows, 1, 1, fast
|
|
||||||
animation = windowsOut, 1, 7, default, popin 80%
|
animation = windowsOut, 1, 7, default, popin 80%
|
||||||
animation = border, 1, 10, default
|
animation = border, 1, 10, default
|
||||||
animation = borderangle, 1, 8, default
|
animation = borderangle, 1, 8, default
|
||||||
animation = fade, 1, 3, default
|
animation = fade, 1, 7, default
|
||||||
animation = workspaces, 1, 1, fast
|
animation = workspaces, 1, 6, default
|
||||||
animation = specialWorkspace, 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dwindle {
|
dwindle {
|
||||||
|
@ -82,9 +86,12 @@ dwindle {
|
||||||
preserve_split=true
|
preserve_split=true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
master {
|
||||||
|
new_is_master=true
|
||||||
|
}
|
||||||
|
|
||||||
misc {
|
misc {
|
||||||
layers_hog_keyboard_focus=true
|
layers_hog_keyboard_focus=true
|
||||||
middle_click_paste=true
|
|
||||||
vfr=1
|
vfr=1
|
||||||
vrr=on
|
vrr=on
|
||||||
disable_hyprland_logo=true
|
disable_hyprland_logo=true
|
||||||
|
|
|
@ -6,6 +6,5 @@ wallpaper = DP-1,~/.config/wallpapers/current_wallpaper.png
|
||||||
wallpaper = DP-2,~/.config/wallpapers/current_wallpaper.png
|
wallpaper = DP-2,~/.config/wallpapers/current_wallpaper.png
|
||||||
wallpaper = DP-3,~/.config/wallpapers/current_wallpaper.png
|
wallpaper = DP-3,~/.config/wallpapers/current_wallpaper.png
|
||||||
wallpaper = DP-4,~/.config/wallpapers/current_wallpaper.png
|
wallpaper = DP-4,~/.config/wallpapers/current_wallpaper.png
|
||||||
wallpaper = HDMI-A-1,~/.config/wallpapers/current_wallpaper.png
|
|
||||||
splash=false
|
splash=false
|
||||||
ipc = off
|
ipc = off
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
# Configure Monitor Setup for Hyprland
|
# Configure Monitor Setup for Hyprland
|
||||||
|
|
||||||
# Assign Monitors
|
# Assign Monitors
|
||||||
monitor=eDP-1,preferred,auto,1.5
|
#monitor=DP-2,3440x1440@100,0x0,1
|
||||||
|
#monitor=HDMI-A-1,1920x1080@60,3440x160,1
|
||||||
|
#monitor=DP-3,disable
|
||||||
|
|
||||||
|
# Set Default Workspaces
|
||||||
|
#workspace=HDMI-A-1,7
|
||||||
|
#workspace=DP-2,1
|
||||||
|
|
||||||
|
|
||||||
|
monitor=eDP-1,2256x1504@60,0x0,1.5
|
||||||
|
#monitor=DP-2,1024x786,2256x0,1
|
||||||
workspace=eDP-1,1
|
workspace=eDP-1,1
|
||||||
|
#monitor=DP-1,preferred,auto,1
|
||||||
## CRT Fun ##
|
#monitor=DP-2,preferred,auto,1
|
||||||
# Good Middle Ground
|
#monitor=DP-3,preferred,auto,1
|
||||||
# monitor=DP-1,1280x1024@150,auto,1
|
#monitor=DP-4,preferred,auto,1
|
||||||
|
|
||||||
# High Rez
|
|
||||||
# monitor=DP-1,2500x2000@30,auto,1
|
|
||||||
|
|
||||||
# Fast As FUK BOIZ - doesn't work well maybe adaptor
|
|
||||||
#monitor=DP-1,640x480@240,auto,1
|
|
||||||
|
|
||||||
# Auto Monitor Rule
|
|
||||||
monitor = , preferred, auto, 1
|
|
||||||
|
|
8
config/hypr/portal.sh
Executable file
8
config/hypr/portal.sh
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
sleep 1
|
||||||
|
killall xdg-desktop-portal-hyprland
|
||||||
|
killall xdg-desktop-portal-wlr
|
||||||
|
killall xdg-desktop-portal
|
||||||
|
/usr/lib/xdg-desktop-portal-hyprland &
|
||||||
|
sleep 2
|
||||||
|
/usr/lib/xdg-desktop-portal &
|
|
@ -1,13 +1,10 @@
|
||||||
# Window Rule Config File
|
# Window Rule Config File
|
||||||
|
|
||||||
# Application Fixes
|
|
||||||
# Foot Fullscreen Transparency Fix
|
|
||||||
windowrulev2 = syncfullscreen 0, initialClass:(footclient), initialTitle:(foot)
|
|
||||||
|
|
||||||
windowrule=nofocus,ibus,^(Ibus-ui-gtk3)$
|
|
||||||
|
|
||||||
# WLogout Configuration
|
# WLogout Configuration
|
||||||
# Might move to separate file cause screen resolutions whack
|
# Might move to separate file cause screen resolutions whack
|
||||||
|
|
||||||
|
windowrule=nofocus,ibus,^(Ibus-ui-gtk3)$
|
||||||
|
|
||||||
windowrule=move 720 222,wlogout
|
windowrule=move 720 222,wlogout
|
||||||
windowrule=size 2000 1000,wlogout
|
windowrule=size 2000 1000,wlogout
|
||||||
windowrule=tile,xyz
|
windowrule=tile,xyz
|
||||||
|
@ -16,12 +13,10 @@ windowrule=pseudo,abc
|
||||||
windowrule=monitor 0,wlogout
|
windowrule=monitor 0,wlogout
|
||||||
|
|
||||||
# Don't blur performance intensive applications
|
# Don't blur performance intensive applications
|
||||||
windowrulev2 = noblur,class:osu!
|
windowrule=noblur,osu!
|
||||||
windowrulev2 = noblur,class:firefox
|
windowrule=noblur,^(firefox)$
|
||||||
windowrulev2 = noblur,class:librewolf
|
windowrule=noblur,^(librewolf)$
|
||||||
windowrulev2 = noblur,class:blender
|
windowrule=noblur,Blender
|
||||||
windowrulev2 = noblur,class:steam
|
windowrule=noblur,Steam
|
||||||
|
windowrule=noblur,nheko
|
||||||
#windowrulev2=noblur,fullscreen:1
|
#windowrulev2=noblur,fullscreen:1
|
||||||
|
|
||||||
# Funny Opacity
|
|
||||||
windowrulev2 = opacity .8, class:nheko
|
|
||||||
|
|
|
@ -1,118 +0,0 @@
|
||||||
# vim: filetype=neomuttrc
|
|
||||||
|
|
||||||
# General Settings
|
|
||||||
set send_charset="us-ascii:utf-8"
|
|
||||||
set mime_type_query_command = "file --mime-type -b %s"
|
|
||||||
set date_format="%y/%m/%d %I:%M%p"
|
|
||||||
set index_format="%2C %Z %?X?A& ? %D %-15.15F %s (%-4.4c)"
|
|
||||||
set sort = 'reverse-date'
|
|
||||||
set smtp_authenticators = 'gssapi:login'
|
|
||||||
set query_command = "abook --mutt-query '%s'"
|
|
||||||
set rfc2047_parameters = yes
|
|
||||||
set sleep_time = 0 # Pause 0 seconds for informational messages
|
|
||||||
set markers = no # Disables the `+` displayed at line wraps
|
|
||||||
set mark_old = no # Unread mail stay unread until read
|
|
||||||
set mime_forward = no # mail body is forwarded as text
|
|
||||||
set forward_attachments = yes # attachments are forwarded with mail
|
|
||||||
set wait_key = no # mutt won't ask "press key to continue"
|
|
||||||
set fast_reply # skip to compose when replying
|
|
||||||
set fcc_attach # save attachments with the body
|
|
||||||
set forward_format = "Fwd: %s" # format of subject when forwarding
|
|
||||||
set forward_quote # include message in forwards
|
|
||||||
set reverse_name # reply as whomever it was to
|
|
||||||
set include # include message in replies
|
|
||||||
# set mail_check=60 # to avoid lags using IMAP with some email providers (yahoo for example)
|
|
||||||
# set use_threads=threads sort=reverse-date sort_aux=date
|
|
||||||
|
|
||||||
# HTML Viewing
|
|
||||||
auto_view text/html # automatically show html (mailcap uses lynx)
|
|
||||||
auto_view application/pgp-encrypted
|
|
||||||
alternative_order text/html text/plain text/enriched
|
|
||||||
|
|
||||||
# Change Header Cache to faster
|
|
||||||
set header_cache_backend = "lmdb"
|
|
||||||
set header_cache_compress_method = "zstd"
|
|
||||||
set header_cache_compress_level = 18
|
|
||||||
|
|
||||||
set mailcap_path = $XDG_CONFIG_HOME/mutt/mailcap
|
|
||||||
|
|
||||||
bind index,pager i noop
|
|
||||||
bind index,pager g noop
|
|
||||||
bind index \Cf noop
|
|
||||||
bind index,pager M noop
|
|
||||||
bind index,pager C noop
|
|
||||||
|
|
||||||
# General rebindings
|
|
||||||
bind index gg first-entry
|
|
||||||
bind index j next-entry
|
|
||||||
bind index k previous-entry
|
|
||||||
bind attach <return> view-mailcap
|
|
||||||
bind attach l view-mailcap
|
|
||||||
bind editor <space> noop
|
|
||||||
bind index G last-entry
|
|
||||||
bind pager,attach h exit
|
|
||||||
bind pager j next-line
|
|
||||||
bind pager k previous-line
|
|
||||||
bind pager l view-attachments
|
|
||||||
bind index D delete-message
|
|
||||||
bind index U undelete-message
|
|
||||||
bind index L limit
|
|
||||||
bind index h noop
|
|
||||||
bind index l display-message
|
|
||||||
bind index,query <space> tag-entry
|
|
||||||
#bind browser h goto-parent
|
|
||||||
macro browser h '<change-dir><kill-line>..<enter>' "Go to parent folder"
|
|
||||||
bind index,pager H view-raw-message
|
|
||||||
bind browser l select-entry
|
|
||||||
bind browser gg top-page
|
|
||||||
bind browser G bottom-page
|
|
||||||
bind pager gg top
|
|
||||||
bind pager G bottom
|
|
||||||
bind index,pager,browser d half-down
|
|
||||||
bind index,pager,browser u half-up
|
|
||||||
bind index,pager S sync-mailbox
|
|
||||||
bind index,pager R group-reply
|
|
||||||
bind index \031 previous-undeleted # Mouse wheel
|
|
||||||
bind index \005 next-undeleted # Mouse wheel
|
|
||||||
bind pager \031 previous-line # Mouse wheel
|
|
||||||
bind pager \005 next-line # Mouse wheel
|
|
||||||
bind editor <Tab> complete-query
|
|
||||||
|
|
||||||
macro index,pager gi "<change-folder>=INBOX<enter>" "go to inbox"
|
|
||||||
macro index,pager Mi ";<save-message>=INBOX<enter>" "move mail to inbox"
|
|
||||||
macro index,pager Ci ";<copy-message>=INBOX<enter>" "copy mail to inbox"
|
|
||||||
macro index,pager gd "<change-folder>=Drafts<enter>" "go to drafts"
|
|
||||||
macro index,pager Md ";<save-message>=Drafts<enter>" "move mail to drafts"
|
|
||||||
macro index,pager Cd ";<copy-message>=Drafts<enter>" "copy mail to drafts"
|
|
||||||
macro index,pager gj "<change-folder>=Junk<enter>" "go to junk"
|
|
||||||
macro index,pager Mj ";<save-message>=Junk<enter>" "move mail to junk"
|
|
||||||
macro index,pager Cj ";<copy-message>=Junk<enter>" "copy mail to junk"
|
|
||||||
macro index,pager gt "<change-folder>=Trash<enter>" "go to trash"
|
|
||||||
macro index,pager Mt ";<save-message>=Trash<enter>" "move mail to trash"
|
|
||||||
macro index,pager Ct ";<copy-message>=Trash<enter>" "copy mail to trash"
|
|
||||||
macro index,pager gs "<change-folder>=Sent<enter>" "go to sent"
|
|
||||||
macro index,pager Ms ";<save-message>=Sent<enter>" "move mail to sent"
|
|
||||||
macro index,pager Cs ";<copy-message>=Sent<enter>" "copy mail to sent"
|
|
||||||
macro index,pager ga "<change-folder>=Archive<enter>" "go to archive"
|
|
||||||
macro index,pager Ma ";<save-message>=Archive<enter>" "move mail to archive"
|
|
||||||
macro index,pager Ca ";<copy-message>=Archive<enter>" "copy mail to archive"
|
|
||||||
|
|
||||||
macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook"
|
|
||||||
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
|
|
||||||
macro index O "<shell-escape>mailsync<enter>" "run mailsync to sync all mail"
|
|
||||||
macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>printf 'Enter a search term to find with notmuch: '; read x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern"
|
|
||||||
macro index A "<limit>all\n" "show all messages (undo limit)"
|
|
||||||
|
|
||||||
# Sidebar mappings
|
|
||||||
set sidebar_visible = yes
|
|
||||||
set sidebar_width = 20
|
|
||||||
set sidebar_short_path = yes
|
|
||||||
set sidebar_next_new_wrap = yes
|
|
||||||
set mail_check_stats
|
|
||||||
set sidebar_format = '%D%?F? [%F]?%* %?N?%N/? %?S?%S?'
|
|
||||||
bind index,pager \Ck sidebar-prev
|
|
||||||
bind index,pager \Cj sidebar-next
|
|
||||||
bind index,pager \Co sidebar-open
|
|
||||||
bind index,pager \Cp sidebar-prev-new
|
|
||||||
bind index,pager \Cn sidebar-next-new
|
|
||||||
bind index,pager B sidebar-toggle-visible
|
|
|
@ -1,10 +0,0 @@
|
||||||
text/plain; $EDITOR %s ;
|
|
||||||
text/html; xdg-open %s ; nametemplate=%s.html
|
|
||||||
text/html; lynx -assume_charset=%{charset} -display_charset=utf-8 -dump -width=1024 %s; nametemplate=%s.html; copiousoutput;
|
|
||||||
image/*; xdg-open %s ;
|
|
||||||
video/*; setsid mpv --quiet %s &; copiousoutput
|
|
||||||
audio/*; mpv %s ;
|
|
||||||
application/pdf; xdg-open %s ;
|
|
||||||
application/pgp-encrypted; gpg -d '%s'; copiousoutput;
|
|
||||||
application/pgp-keys; gpg --import '%s'; copiousoutput;
|
|
||||||
application/x-subrip; $EDITOR %s ;
|
|
|
@ -1,163 +0,0 @@
|
||||||
# vim: filetype=neomuttrc
|
|
||||||
# Adapted from https://github.com/ceuk/mutt_dotfiles/
|
|
||||||
|
|
||||||
# Formatting ----------------------------------------------------------------------
|
|
||||||
set date_format = "%a %d %h %H:%M"
|
|
||||||
set index_format=" %{$date_format} %zc %zs %zt | %-30.30L | %-30.80s %> %?Y?%Y ? "
|
|
||||||
set pager_format="%n %T %s%* %{!%d %b · %H:%M} %?X? %X?%P"
|
|
||||||
set status_format = " %D %?u? %u ?%?R? %R ?%?d? %d ?%?t? %t ?%?F? %F ?%?p? %p? \n \n"
|
|
||||||
set compose_format="-- NeoMutt: Compose [Approx. msg size: %l Atts: %a]%>-"
|
|
||||||
set vfolder_format = "%N %?n?%3n& ? %8m · %f"
|
|
||||||
set attach_format = "%u%D %T%-75.75d %?T?& ? %5s · %m/%M"
|
|
||||||
set sidebar_format = '%D%?Z? [%Z]?%* %?S?%S?'
|
|
||||||
index-format-hook attachment_info '=B text/calendar ~X 1' ' '
|
|
||||||
index-format-hook attachment_info '=B text/calendar' " "
|
|
||||||
index-format-hook attachment_info '~X 1' " "
|
|
||||||
index-format-hook attachment_info '~A' " "
|
|
||||||
|
|
||||||
|
|
||||||
# General Colors ------------------------------------------------------------------
|
|
||||||
color normal default default # general text
|
|
||||||
color error color231 color212 # error messages
|
|
||||||
color message default default # messages at the bottom
|
|
||||||
color prompt default default # prompt text
|
|
||||||
color search black color10 # search highlight
|
|
||||||
|
|
||||||
|
|
||||||
# Statusbar Colors ----------------------------------------------------------------
|
|
||||||
color status color141 default
|
|
||||||
color status color0 default '(|)' # statusline "bubbles"
|
|
||||||
color status yellow color0 '' # Flagged icon
|
|
||||||
color status green color0 '' # Unread messages count
|
|
||||||
color status blue color0 '' # Read messages count icon
|
|
||||||
color status red color8 '' # Pending delete icon
|
|
||||||
color status color7 color0 '([a-zA-Z0-9\.,]|\[|\])(\s)' # bubble content 1
|
|
||||||
color status color7 color0 '(\s)([a-zA-Z0-9\.,]|\[|\])' # bubble content 2
|
|
||||||
color status color7 color0 '(\% )' # % symbol
|
|
||||||
color status color7 color0 '(\S)' # empty spaces
|
|
||||||
# color status color69 black '(\` )' # bubble account variation
|
|
||||||
color status white color69 '([a-zA-Z0-9\.]+)( )' # account text
|
|
||||||
|
|
||||||
|
|
||||||
# Index Colors --------------------------------------------------------------------
|
|
||||||
color index color4 default '~N' # new messages
|
|
||||||
color index color15 default '~R' # read messages
|
|
||||||
color index color8 default '~Q' # messages which have been replied to
|
|
||||||
color index_collapsed color4 default # collapsed thread (message count text)
|
|
||||||
# color index color5 default '!~Q^~p' # sent only to me and haven't been replied to
|
|
||||||
color index color22 default '~h X-Label..' # messages with a complete label
|
|
||||||
color index color5 default '~F' # flagged messages
|
|
||||||
color index color6 default '~F~N' # flagged messages (new)
|
|
||||||
color index color6 default '~F~R' # flagged messages (read)
|
|
||||||
color index color1 default '~D' # deleted messages
|
|
||||||
color index color1 default '~D~N' # deleted messages (new)
|
|
||||||
color index color9 default '~D~R' # deleted messages (read)
|
|
||||||
color index color3 default '~T' # tagged messages
|
|
||||||
color index color3 default '~T~N' # tagged messages (new)
|
|
||||||
color index color11 default '~T~R' # tagged messages (read)
|
|
||||||
color tree color8 color8 # thread tree lines/arrow
|
|
||||||
color indicator default color8 # selection indicator
|
|
||||||
color index_date color14 default # date is always the same colour
|
|
||||||
color index_label color6 default # label is always the same colour
|
|
||||||
|
|
||||||
|
|
||||||
# Sidebar Colors ------------------------------------------------------------------
|
|
||||||
color sidebar_indicator color14 black # currently selected mailbox
|
|
||||||
color sidebar_highlight white color8 # highlighted, but not open, mailbox.
|
|
||||||
color sidebar_ordinary color8 default # Color to give mailboxes by default
|
|
||||||
color sidebar_divider color8 black # divider between sidebar & content
|
|
||||||
color sidebar_flagged red black # mailboxes containing flagged mail
|
|
||||||
color sidebar_new green black # mailboxes containing new mail
|
|
||||||
color sidebar_unread color7 default # mailboxes containing unread mail
|
|
||||||
color sidebar_unread color7 default # mailboxes containing unread mail
|
|
||||||
|
|
||||||
|
|
||||||
# Message Headers -----------------------------------------------------------------
|
|
||||||
color hdrdefault color8 default
|
|
||||||
|
|
||||||
|
|
||||||
# Message Body --------------------------------------------------------------------
|
|
||||||
|
|
||||||
# Attachments
|
|
||||||
color attachment color8 default
|
|
||||||
|
|
||||||
# Signature
|
|
||||||
color signature color8 default
|
|
||||||
|
|
||||||
# emails
|
|
||||||
# color body color14 default '[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+'
|
|
||||||
|
|
||||||
# hide "mailto"
|
|
||||||
color body color0 color0 '<mailto:[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+>'
|
|
||||||
|
|
||||||
# URLs
|
|
||||||
color body color3 default '(https?|ftp)://[-\.,/%~_:?&=\#a-zA-Z0-9\+]+'
|
|
||||||
|
|
||||||
# Dividers
|
|
||||||
color body color8 default '(^[-_]*$)'
|
|
||||||
|
|
||||||
# Important info in calendar invites
|
|
||||||
color body color6 default '^(Date\/Time|Location|Organiser|Invitees|Teams Meeting)(:| \~\~)'
|
|
||||||
|
|
||||||
# Quotes
|
|
||||||
color quoted color61 default
|
|
||||||
color quoted1 color117 default
|
|
||||||
color quoted2 color84 default
|
|
||||||
color quoted3 color215 default
|
|
||||||
color quoted4 color212 default
|
|
||||||
|
|
||||||
# Forward/reply headers
|
|
||||||
color body color8 default '(^(To|From|Sent|Subject):.*)'
|
|
||||||
|
|
||||||
# Patch syntax highlighting
|
|
||||||
# color body brightwhite default '^[[:space:]].*'
|
|
||||||
# color body yellow default ^(diff).*
|
|
||||||
# color body white default ^[\-\-\-].*
|
|
||||||
# color body white default ^[\+\+\+].*
|
|
||||||
# color body green default ^[\+].*
|
|
||||||
# color body red default ^[\-].*
|
|
||||||
# color body brightblue default [@@].*
|
|
||||||
# color body cyan default ^(Signed-off-by).*
|
|
||||||
# color body brightwhite default ^(Cc)
|
|
||||||
# color body yellow default "^diff \-.*"
|
|
||||||
# color body brightwhite default "^index [a-f0-9].*"
|
|
||||||
# color body brightblue default "^---$"
|
|
||||||
# color body white default "^\-\-\- .*"
|
|
||||||
# color body white default "^[\+]{3} .*"
|
|
||||||
# color body green default "^[\+][^\+]+.*"
|
|
||||||
# color body red default "^\-[^\-]+.*"
|
|
||||||
# color body brightblue default "^@@ .*"
|
|
||||||
# color body green default "LGTM"
|
|
||||||
# color body brightmagenta default "-- Commit Summary --"
|
|
||||||
# color body brightmagenta default "-- File Changes --"
|
|
||||||
# color body brightmagenta default "-- Patch Links --"
|
|
||||||
# color body green default "^Merged #.*"
|
|
||||||
# color body red default "^Closed #.*"
|
|
||||||
# color body brightblue default "^Reply to this email.*"
|
|
||||||
|
|
||||||
|
|
||||||
# Misc -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# no addressed to me, to me, group, cc, sent by me, mailing list
|
|
||||||
set to_chars=" "
|
|
||||||
|
|
||||||
# unchanged mailbox, changed, read only, attach mode
|
|
||||||
set status_chars = " "
|
|
||||||
ifdef crypt_chars set crypt_chars = " "
|
|
||||||
set flag_chars = " "
|
|
||||||
|
|
||||||
# hide some tags
|
|
||||||
set hidden_tags = "unread,draft,flagged,passed,replied,attachment,signed,encrypted"
|
|
||||||
tag-transforms "replied" "↻ " \
|
|
||||||
"encrytpted" "" \
|
|
||||||
"signed" "" \
|
|
||||||
"attachment" "" \
|
|
||||||
|
|
||||||
# The formats must start with 'G' and the entire sequence is case sensitive.
|
|
||||||
tag-formats "replied" "GR" \
|
|
||||||
"encrypted" "GE" \
|
|
||||||
"signed" "GS" \
|
|
||||||
"attachment" "GA" \
|
|
||||||
|
|
||||||
# don't put '+' at the beginning of wrapped lines
|
|
||||||
set markers=no
|
|
|
@ -1,10 +0,0 @@
|
||||||
# vim: filetype=neomuttrc
|
|
||||||
|
|
||||||
# This is an embarrassing and hacky file that unbinds a bunch of binds between
|
|
||||||
# switching accounts. It is called each time an account is changed.
|
|
||||||
|
|
||||||
unset hostname
|
|
||||||
unmy_hdr Organization
|
|
||||||
unmailboxes *
|
|
||||||
unalternates *
|
|
||||||
unset signature
|
|
|
@ -1,9 +1,155 @@
|
||||||
" (Neo)vim Configuration
|
" (Neo)vim Configuration
|
||||||
" By Flying_Stitchman 4 Jan 2022
|
" By Flying_Stitchman
|
||||||
|
" 4 Jan 2022
|
||||||
|
|
||||||
" nvim builtin option config
|
" Basic Configuration
|
||||||
luafile /etc/nixos/config/nvim/lua/options.lua
|
|
||||||
" nvim keymapping
|
syntax on
|
||||||
luafile /etc/nixos/config/nvim/lua/keymap.lua
|
set spell
|
||||||
" Main Config stuffs
|
set hlsearch
|
||||||
luafile /etc/nixos/config/nvim/nvim.lua
|
set ignorecase
|
||||||
|
set number relativenumber
|
||||||
|
set noswapfile
|
||||||
|
inoremap jk <ESC>
|
||||||
|
xnoremap gy "+y
|
||||||
|
let mapleader = "`"
|
||||||
|
|
||||||
|
" Good indents "
|
||||||
|
set tabstop=2
|
||||||
|
set shiftwidth=2
|
||||||
|
set expandtab
|
||||||
|
|
||||||
|
" Make Lines Wrap Properly
|
||||||
|
set linebreak
|
||||||
|
set wrap
|
||||||
|
" True Color Support
|
||||||
|
if has('nvim')
|
||||||
|
set t_8f=[38;2;%lu;%lu;%lum
|
||||||
|
set t_8b=[48;2;%lu;%lu;%lum
|
||||||
|
set termguicolors
|
||||||
|
endif
|
||||||
|
"colorscheme cwcolors
|
||||||
|
|
||||||
|
|
||||||
|
" Highlight Trailing Spaces
|
||||||
|
let c_space_errors=1
|
||||||
|
|
||||||
|
set noincsearch
|
||||||
|
|
||||||
|
" Plugs
|
||||||
|
"call plug#begin()
|
||||||
|
"Plug 'neovim/nvim-lspconfig'
|
||||||
|
"Plug 'jackguo380/vim-lsp-cxx-highlight'
|
||||||
|
"Plug 'folke/tokyonight.nvim', { 'branch': 'main' }
|
||||||
|
"Plug 'tribela/vim-transparent'
|
||||||
|
"Plug 'hrsh7th/nvim-cmp'
|
||||||
|
"Plug 'hrsh7th/cmp-nvim-lsp'
|
||||||
|
"Plug 'saadparwaiz1/cmp_luasnip'
|
||||||
|
"Plug 'L3MON4D3/LuaSnip'
|
||||||
|
"call plug#end()
|
||||||
|
|
||||||
|
let g:airline#extensions#wordcount#filetypes = '\vasciidoc|help|mail|markdown|markdown.pandoc|org|rst|tex|text'
|
||||||
|
set laststatus=2 " enables vim-airline.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" C Syntax highlighting
|
||||||
|
lua << EOF
|
||||||
|
require'lspconfig'.rust_analyzer.setup{}
|
||||||
|
require'lspconfig'.texlab.setup{}
|
||||||
|
require'lspconfig'.svls.setup{}
|
||||||
|
require'lspconfig'.pylsp.setup{
|
||||||
|
settings = {
|
||||||
|
pylsp = {
|
||||||
|
plugins = {
|
||||||
|
pycodestyle = {
|
||||||
|
ignore = {'W391'},
|
||||||
|
maxLineLength = 100
|
||||||
|
},
|
||||||
|
pylint = {
|
||||||
|
enabled = false
|
||||||
|
},
|
||||||
|
pyflakes = {
|
||||||
|
enabled = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
require'lspconfig'.ccls.setup{
|
||||||
|
init_options = {
|
||||||
|
highlight = {
|
||||||
|
lsRanges = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-- Add additional capabilities supported by nvim-cmp
|
||||||
|
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||||
|
|
||||||
|
local lspconfig = require('lspconfig')
|
||||||
|
|
||||||
|
-- Enable some language servers with the additional completion capabilities offered by nvim-cmp
|
||||||
|
local servers = { 'clangd', 'rust_analyzer', 'tsserver' }
|
||||||
|
for _, lsp in ipairs(servers) do
|
||||||
|
lspconfig[lsp].setup {
|
||||||
|
-- on_attach = my_custom_on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- luasnip setup
|
||||||
|
local luasnip = require 'luasnip'
|
||||||
|
|
||||||
|
-- nvim-cmp setup
|
||||||
|
local cmp = require 'cmp'
|
||||||
|
cmp.setup {
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
luasnip.lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
['<C-u>'] = cmp.mapping.scroll_docs(-4), -- Up
|
||||||
|
['<C-d>'] = cmp.mapping.scroll_docs(4), -- Down
|
||||||
|
-- C-b (back) C-f (forward) for snippet placeholder navigation.
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm {
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = true,
|
||||||
|
},
|
||||||
|
['<Tab>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
['<S-Tab>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
}),
|
||||||
|
sources = {
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'luasnip' },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" Color Themes
|
||||||
|
colorscheme tokyonight
|
||||||
|
hi Comment guifg=#e69dc5
|
||||||
|
hi Linenr guifg=#a672f3
|
||||||
|
|
|
@ -1,159 +0,0 @@
|
||||||
-- Keymap File
|
|
||||||
local map = vim.keymap.set
|
|
||||||
|
|
||||||
-- jk exit from insert mode
|
|
||||||
map("i", "jk", "<cmd>noh<cr><Esc>", { silent = true })
|
|
||||||
map({"n", "x"}, "<Esc>", "<cmd>noh<cr><Esc>", { silent = true })
|
|
||||||
|
|
||||||
-- Append and Prepend Newline
|
|
||||||
map("n", "<Leader>[", "<cmd>call append(line('.')-1, '')<CR>", { desc = "Prepend Newline"})
|
|
||||||
map("n", "<Leader>]", "<cmd>call append(line('.'), '')<CR>", { desc = "Append Newline"})
|
|
||||||
|
|
||||||
----
|
|
||||||
-- Movements
|
|
||||||
----
|
|
||||||
|
|
||||||
-- More powerful J and K (use 6j/6k)
|
|
||||||
-- Via Pseudometa (https://nanotipsforvim.prose.sh/motion-setup--hjkl-as-amplified-hjkl)
|
|
||||||
map({ "n", "x" }, "<S-j>", "6j")
|
|
||||||
map({ "n", "x" }, "<S-k>", "6k")
|
|
||||||
|
|
||||||
-- And fix the keys to other ones
|
|
||||||
map({ "n", "x" }, "M", "J", { desc = "Merge" }) -- Replace the join command
|
|
||||||
map("n", "gh", vim.lsp.buf.hover, { desc = "Hover" }) -- Code action hover
|
|
||||||
|
|
||||||
|
|
||||||
-- Move to window using the <ctrl> hjkl keys
|
|
||||||
map("n", "<C-h>", "<C-w>h", { desc = "Go to left window", remap = true })
|
|
||||||
map("n", "<C-j>", "<C-w>j", { desc = "Go to lower window", remap = true })
|
|
||||||
map("n", "<C-k>", "<C-w>k", { desc = "Go to upper window", remap = true })
|
|
||||||
map("n", "<C-l>", "<C-w>l", { desc = "Go to right window", remap = true })
|
|
||||||
|
|
||||||
-- Move between buffers
|
|
||||||
map("n", "<S-h>", "<cmd>BufferLineCyclePrev<CR>", { desc = "Move buffer left", silent = true })
|
|
||||||
map("n", "<S-l>", "<cmd>BufferLineCycleNext<CR>", { desc = "Move buffer right", silent = true })
|
|
||||||
map("n", "<leader><", "<cmd>BufferLineMovePrev<CR>", { desc = "Move buffer left", silent = true })
|
|
||||||
map("n", "<leader>>", "<cmd>BufferLineMoveNext<CR>", { desc = "Move buffer right", silent = true })
|
|
||||||
|
|
||||||
-- ToggleTerm Bindings
|
|
||||||
map("n", "<leader>a", "<cmd>ToggleTerm name=main<CR>", { desc = "Floating Terminal", silent = true })
|
|
||||||
map("n", "<leader>g", "<cmd>lua _lazygit_toggle()<CR>", {noremap = true, silent = true})
|
|
||||||
|
|
||||||
-- Undotree
|
|
||||||
map("n", "<leader>fu", "<cmd>Telescope undo<cr>")
|
|
||||||
|
|
||||||
----
|
|
||||||
-- Cool Macros
|
|
||||||
----
|
|
||||||
|
|
||||||
-- Quit All
|
|
||||||
map("n", "<leader>qq", "<cmd>qa<cr>", { desc = "Quit all" })
|
|
||||||
|
|
||||||
-- Copy and paste from system clipboard
|
|
||||||
map({ "n", "x" }, "<Leader>y", '"+y', { desc = "Yank to system clipboard", silent = true })
|
|
||||||
map({ "n", "x" }, "<Leader>p", '"+p', { desc = "Paste after from system clipboard", silent = true })
|
|
||||||
map({ "n", "x" }, "<Leader>P", '"+P', { desc = "Paste before from system clipboard", silent = true })
|
|
||||||
|
|
||||||
-- Neotree
|
|
||||||
map("n", "<leader>e", function()
|
|
||||||
require("neo-tree.command").execute({ action = "show", position = "right", toggle = true, dir = vim.loop.cwd() })
|
|
||||||
end, { desc = "Open Neotree", remap = true })
|
|
||||||
|
|
||||||
|
|
||||||
-- Conform Formatting
|
|
||||||
map({ "n", "v" }, "<leader>mp", function()
|
|
||||||
require("conform").format({
|
|
||||||
lsp_fallback = true,
|
|
||||||
async = false,
|
|
||||||
timeout_ms = 500,
|
|
||||||
})
|
|
||||||
end, { desc = "Format file or range (in visual mode)" })
|
|
||||||
|
|
||||||
-- diagnostic
|
|
||||||
---@param next "f"|"b"
|
|
||||||
---@param severity "ERROR"|"WARN"?
|
|
||||||
local diagnostic_goto = function(next, severity)
|
|
||||||
local go = (next == "f") and vim.diagnostic.goto_next or vim.diagnostic.goto_prev
|
|
||||||
local severity_index = severity and vim.diagnostic.severity[severity] or nil
|
|
||||||
return function()
|
|
||||||
go({ severity = severity_index })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
map("n", "<leader>cd", vim.diagnostic.open_float, { desc = "Line Diagnostics" })
|
|
||||||
map("n", "]d", diagnostic_goto("f"), { desc = "Next Diagnostic" })
|
|
||||||
map("n", "[d", diagnostic_goto("b"), { desc = "Prev Diagnostic" })
|
|
||||||
map("n", "]e", diagnostic_goto("f", "ERROR"), { desc = "Next Error" })
|
|
||||||
map("n", "[e", diagnostic_goto("b", "ERROR"), { desc = "Prev Error" })
|
|
||||||
map("n", "]w", diagnostic_goto("f", "WARN"), { desc = "Next Warning" })
|
|
||||||
map("n", "[w", diagnostic_goto("b", "WARN"), { desc = "Prev Warning" })
|
|
||||||
|
|
||||||
----
|
|
||||||
-- Plugins
|
|
||||||
----
|
|
||||||
|
|
||||||
-- Telescope (fuzzy finder)
|
|
||||||
local function telescope_git_fallback()
|
|
||||||
vim.fn.system("git rev-parse --is-inside-work-tree")
|
|
||||||
local is_git_repo = vim.v.shell_error == 0
|
|
||||||
|
|
||||||
if is_git_repo then
|
|
||||||
require("telescope.builtin").git_files()
|
|
||||||
else
|
|
||||||
require("telescope.builtin").find_files()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local function telescope_files()
|
|
||||||
require("telescope.builtin").find_files({ cwd = vim.uv.cwd() })
|
|
||||||
end
|
|
||||||
local function telescope_oldfiles()
|
|
||||||
require("telescope.builtin").oldfiles({ cwd = vim.uv.cwd() })
|
|
||||||
end
|
|
||||||
local function telescope_live_grep()
|
|
||||||
vim.fn.system("git rev-parse --is-inside-work-tree")
|
|
||||||
local is_git_repo = vim.v.shell_error == 0
|
|
||||||
local git_root = vim.fn.fnamemodify(vim.fn.finddir(".git", ".;"), ":h")
|
|
||||||
|
|
||||||
require("telescope.builtin").live_grep({
|
|
||||||
cwd = is_git_repo and git_root or vim.uv.cwd(),
|
|
||||||
})
|
|
||||||
end
|
|
||||||
map("n", "<leader><space>", telescope_git_fallback, { desc = "Find files (git/fallback, cwd)" })
|
|
||||||
map("n", "<leader>ff", telescope_files, { desc = "Find files (cwd)" })
|
|
||||||
map("n", "<leader>fo", telescope_oldfiles, { desc = "Find files (cwd)" })
|
|
||||||
map("n", "<leader>/", telescope_live_grep, { desc = "Live grep (cwd)" })
|
|
||||||
map("n", "<leader>,", require("telescope.builtin").buffers, { desc = "Find buffers" })
|
|
||||||
map("n", "<leader>\"", require("telescope.builtin").registers, { desc = "Find registers" })
|
|
||||||
|
|
||||||
|
|
||||||
----
|
|
||||||
-- Fixes
|
|
||||||
----
|
|
||||||
|
|
||||||
-- Proper Wrap Navigation
|
|
||||||
map({ "n", "x" }, "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
|
||||||
map({ "n", "x" }, "<Down>", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
|
||||||
map({ "n", "x" }, "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
|
||||||
map({ "n", "x" }, "<Up>", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
|
||||||
|
|
||||||
-- Auto Re-highlight After Indent
|
|
||||||
map("v", "<", "<gv")
|
|
||||||
map("v", ">", ">gv")
|
|
||||||
|
|
||||||
-- Saner Movement of nN
|
|
||||||
map("n", "n", "'Nn'[v:searchforward].'zv'.'zz'", { expr = true, desc = "Next search result" })
|
|
||||||
map("x", "n", "'Nn'[v:searchforward].'zz'", { expr = true, desc = "Next search result" })
|
|
||||||
map("o", "n", "'Nn'[v:searchforward].'zz'", { expr = true, desc = "Next search result" })
|
|
||||||
map("n", "N", "'nN'[v:searchforward].'zv'.'zz'", { expr = true, desc = "Prev search result" })
|
|
||||||
map("x", "N", "'nN'[v:searchforward].'zz'", { expr = true, desc = "Prev search result" })
|
|
||||||
map("o", "N", "'nN'[v:searchforward].'zz'", { expr = true, desc = "Prev search result" })
|
|
||||||
|
|
||||||
-- Terminal Mappings
|
|
||||||
map("t", "<esc><esc>", "<c-\\><c-n>", { desc = "Enter Normal Mode" })
|
|
||||||
map("t", "<C-h>", "<cmd>wincmd h<cr>", { desc = "Go to left window" })
|
|
||||||
map("t", "<C-j>", "<cmd>wincmd j<cr>", { desc = "Go to lower window" })
|
|
||||||
map("t", "<C-k>", "<cmd>wincmd k<cr>", { desc = "Go to upper window" })
|
|
||||||
map("t", "<C-l>", "<cmd>wincmd l<cr>", { desc = "Go to right window" })
|
|
||||||
map("t", "<C-/>", "<cmd>close<cr>", { desc = "Hide Terminal" })
|
|
||||||
map("t", "<c-_>", "<cmd>close<cr>", { desc = "which_key_ignore" })
|
|
||||||
|
|
||||||
|
|
|
@ -1,51 +0,0 @@
|
||||||
-- Options File
|
|
||||||
|
|
||||||
local opt = vim.opt
|
|
||||||
|
|
||||||
-- Leader key
|
|
||||||
vim.g.mapleader = " "
|
|
||||||
vim.g.maplocalleader = "\\"
|
|
||||||
|
|
||||||
-- Basic Options I like
|
|
||||||
opt.hlsearch = true
|
|
||||||
opt.ignorecase = true
|
|
||||||
opt.relativenumber = true
|
|
||||||
opt.number = true
|
|
||||||
opt.spell = true
|
|
||||||
opt.swapfile = false
|
|
||||||
opt.syntax = "on"
|
|
||||||
opt.scrolloff = 15
|
|
||||||
|
|
||||||
-- Had this disabled before might not like
|
|
||||||
opt.incsearch = true
|
|
||||||
|
|
||||||
-- 24-bit color
|
|
||||||
opt.termguicolors = true
|
|
||||||
|
|
||||||
-- Good indents
|
|
||||||
opt.tabstop = 2
|
|
||||||
opt.shiftwidth = 0 -- Use tabstop
|
|
||||||
opt.expandtab = true
|
|
||||||
|
|
||||||
-- Show trailing whitespace but fancy
|
|
||||||
opt.list = true
|
|
||||||
opt.listchars = {
|
|
||||||
tab = "→ ",
|
|
||||||
trail = "╳",
|
|
||||||
nbsp = "⎵",
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Make Lines Wrap Properly
|
|
||||||
opt.linebreak = true
|
|
||||||
opt.wrap = true
|
|
||||||
|
|
||||||
-- Colors
|
|
||||||
require("tokyonight").setup({
|
|
||||||
transparent = true,
|
|
||||||
styles = {
|
|
||||||
floats = "transparent"
|
|
||||||
}
|
|
||||||
})
|
|
||||||
vim.cmd("colorscheme tokyonight")
|
|
||||||
vim.cmd("hi Comment guifg=#e69dc5")
|
|
||||||
vim.cmd("hi Linenr guifg=#a672f3")
|
|
|
@ -1,189 +0,0 @@
|
||||||
-- This will need some refactoring as it is mostly a
|
|
||||||
-- copy and paste from the previous single-file .vim config
|
|
||||||
|
|
||||||
require'lspconfig'.pylsp.setup{
|
|
||||||
settings = {
|
|
||||||
formatCommand = {"black"},
|
|
||||||
pylsp = {
|
|
||||||
plugins = {
|
|
||||||
jedai_completion = {
|
|
||||||
fuzzy = true
|
|
||||||
},
|
|
||||||
pyflakes = {
|
|
||||||
enabled = true
|
|
||||||
},
|
|
||||||
pylsp_mypy = {
|
|
||||||
enabled = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
require'nvim-treesitter.configs'.setup {
|
|
||||||
ensure_installed = { },
|
|
||||||
auto_install = false,
|
|
||||||
highlight = {
|
|
||||||
enable = true,
|
|
||||||
additional_vim_regex_highlighting = false,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Add additional capabilities supported by nvim-cmp
|
|
||||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
|
||||||
|
|
||||||
local lspconfig = require('lspconfig')
|
|
||||||
|
|
||||||
-- Enable some language servers with the additional completion capabilities offered by nvim-cmp
|
|
||||||
local servers = { 'clangd', 'glsl_analyzer', 'nixd', 'rust_analyzer', 'texlab', 'tinymist', 'verible', 'vhdl_ls', 'vtsls' }
|
|
||||||
for _, lsp in ipairs(servers) do
|
|
||||||
lspconfig[lsp].setup {
|
|
||||||
-- on_attach = my_custom_on_attach,
|
|
||||||
capabilities = capabilities,
|
|
||||||
settings = {
|
|
||||||
['rust-analyzer'] = {
|
|
||||||
cargo = {
|
|
||||||
allFeatures = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
-- luasnip setup
|
|
||||||
local luasnip = require 'luasnip'
|
|
||||||
|
|
||||||
-- nvim-cmp setup
|
|
||||||
local cmp = require 'cmp'
|
|
||||||
cmp.setup {
|
|
||||||
snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
luasnip.lsp_expand(args.body)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
mapping = cmp.mapping.preset.insert({
|
|
||||||
['<C-u>'] = cmp.mapping.scroll_docs(-4), -- Up
|
|
||||||
['<C-d>'] = cmp.mapping.scroll_docs(4), -- Down
|
|
||||||
-- C-b (back) C-f (forward) for snippet placeholder navigation.
|
|
||||||
['<C-Space>'] = cmp.mapping.complete(),
|
|
||||||
['<CR>'] = cmp.mapping.confirm {
|
|
||||||
behavior = cmp.ConfirmBehavior.Replace,
|
|
||||||
select = true,
|
|
||||||
},
|
|
||||||
['<Tab>'] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_next_item()
|
|
||||||
elseif luasnip.expand_or_jumpable() then
|
|
||||||
luasnip.expand_or_jump()
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, { 'i', 's' }),
|
|
||||||
['<S-Tab>'] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_prev_item()
|
|
||||||
elseif luasnip.jumpable(-1) then
|
|
||||||
luasnip.jump(-1)
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, { 'i', 's' }),
|
|
||||||
}),
|
|
||||||
sources = {
|
|
||||||
{ name = 'nvim_lsp' },
|
|
||||||
{ name = 'luasnip' },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
--[[
|
|
||||||
u.-*'M'*-.u
|
|
||||||
x` _____ `x
|
|
||||||
o` _| ___| `o
|
|
||||||
, | |___ ,
|
|
||||||
3 |_ | E
|
|
||||||
' | _ | '
|
|
||||||
o, |_| |_| ,o
|
|
||||||
x". ."x
|
|
||||||
n"--.W.--"n
|
|
||||||
Kiloroy Was Here
|
|
||||||
]]
|
|
||||||
|
|
||||||
-- Funky plugins
|
|
||||||
require("conform").setup({
|
|
||||||
formatters_by_ft = {
|
|
||||||
C = { "clang-format"},
|
|
||||||
css = { "prettier", },
|
|
||||||
html = { "prettier", },
|
|
||||||
javascript = { "prettier", },
|
|
||||||
python = { "black" },
|
|
||||||
typst = { "prettypst" },
|
|
||||||
verilog = { "verible", "trim_whitespace" },
|
|
||||||
systemverilog = { "verible", "trim_whitespace" }
|
|
||||||
},
|
|
||||||
formatters = {
|
|
||||||
prettypst = {
|
|
||||||
args = { "--use-std-in", "--use-std-out" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
format_on_save = {
|
|
||||||
timeout_ms = 500,
|
|
||||||
lsp_format = "fallback",
|
|
||||||
},
|
|
||||||
})
|
|
||||||
require("bufferline").setup({ options = {
|
|
||||||
always_show_bufferline = true,
|
|
||||||
show_buffer_close_icons = false,
|
|
||||||
separator_style = "slope",
|
|
||||||
style_preset = {
|
|
||||||
require("bufferline").style_preset.no_italic,
|
|
||||||
},
|
|
||||||
offsets = {
|
|
||||||
{
|
|
||||||
filetype = "neo-tree",
|
|
||||||
text = "File Explorer",
|
|
||||||
highlight = "Directory",
|
|
||||||
text_align = "left",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},})
|
|
||||||
require("gitsigns").setup()
|
|
||||||
require("ibl").setup()
|
|
||||||
require("mini.pairs").setup()
|
|
||||||
require("mini.comment").setup()
|
|
||||||
require("mini.icons").setup()
|
|
||||||
require("neo-tree").setup()
|
|
||||||
require("nvim-web-devicons").setup()
|
|
||||||
require("render-markdown").setup()
|
|
||||||
require("telescope").setup()
|
|
||||||
require("toggleterm").setup{
|
|
||||||
direction = 'float',
|
|
||||||
float_opts = {
|
|
||||||
border = 'curved',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
require("which-key").setup({ global = false })
|
|
||||||
require("spaceman").setup({
|
|
||||||
workspaces = {
|
|
||||||
"/etc/nixos",
|
|
||||||
{ "config", "/etc/nixos/config/" },
|
|
||||||
{ "home", "~/" },
|
|
||||||
"/opt/www/stitchy.moe" ,
|
|
||||||
},
|
|
||||||
directories = {
|
|
||||||
"~/Documents/Classes",
|
|
||||||
"~/Documents/Repos",
|
|
||||||
"~/Documents/Repos/ExtremeHeatTransfer",
|
|
||||||
"/opt/docker-containers/",
|
|
||||||
},
|
|
||||||
use_default_keymaps = true,
|
|
||||||
hooks = {
|
|
||||||
before_move = "Neotree close",
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Lazygit Panel
|
|
||||||
local Terminal = require('toggleterm.terminal').Terminal
|
|
||||||
local lazygit = Terminal:new({ cmd = "lazygit", hidden = true })
|
|
||||||
|
|
||||||
function _lazygit_toggle()
|
|
||||||
lazygit:toggle()
|
|
||||||
end
|
|
|
@ -1,39 +1,15 @@
|
||||||
## Default Settings ##
|
screenshots
|
||||||
|
|
||||||
clock
|
clock
|
||||||
datestr=%a, %b %e %Y
|
|
||||||
image=~/.config/wallpapers/girls-last-tour-chibi-eepi.jpg
|
|
||||||
grace-no-mouse
|
|
||||||
|
|
||||||
## Text Settings ##
|
|
||||||
|
|
||||||
text-color=8aadf4
|
|
||||||
font=IPAGothic
|
|
||||||
|
|
||||||
## Indicator Settings ##
|
|
||||||
|
|
||||||
indicator
|
indicator
|
||||||
indicator-radius=140
|
indicator-radius=100
|
||||||
indicator-thickness=7
|
indicator-thickness=7
|
||||||
indicator-x-position=1200
|
effect-blur=7x5
|
||||||
indicator-y-position=500
|
effect-vignette=0.5:0.5
|
||||||
|
ring-color=bb00cc
|
||||||
## Ring Colors ##
|
key-hl-color=880033
|
||||||
|
|
||||||
ring-color=a6da95
|
|
||||||
ring-clear-color=eed49f
|
|
||||||
ring-ver-color=8aadf4
|
|
||||||
ring-wrong-color=ed8796
|
|
||||||
|
|
||||||
line-color=00000000
|
line-color=00000000
|
||||||
separator-color=00000000
|
inside-color 00000088
|
||||||
key-hl-color=c6a0f6
|
separator-color 00000000
|
||||||
|
fade-in=0.2
|
||||||
bs-hl-color=ed8796
|
datestr="%a, %b %e %Y"
|
||||||
|
greyscale
|
||||||
## Inside Colors ##
|
|
||||||
|
|
||||||
inside-color=00000088
|
|
||||||
inside-clear-color=eed49f
|
|
||||||
inside-ver-color=8aadf4
|
|
||||||
inside-wrong-color=ed8796
|
|
||||||
|
|
99
config/zshrc
99
config/zshrc
|
@ -8,29 +8,31 @@ unsetopt PROMPT_SP
|
||||||
bindkey -v
|
bindkey -v
|
||||||
# End of lines configured by zsh-newuser-install
|
# End of lines configured by zsh-newuser-install
|
||||||
|
|
||||||
|
# Temporary Rebuild shortcut
|
||||||
|
alias re-scarab="sudo nixos-rebuild --flake '/etc/nixos#scarab'"
|
||||||
|
|
||||||
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
|
export XDG_STATE_HOME="$HOME/.local/state"
|
||||||
|
|
||||||
# Aliases
|
# Aliases
|
||||||
alias c='clear'
|
|
||||||
alias cd="z"
|
|
||||||
alias find="fd"
|
|
||||||
alias gdb="gdb -x /usr/share/pwndbg/gdbinit.py" #pwntools for GDB
|
|
||||||
alias ghidra="_JAVA_AWT_WM_NONREPARENTING=1 ghidra"
|
|
||||||
alias icat="kitty +kitten icat"
|
|
||||||
alias kon="ncmpcpp -b ~/.config/ncmpcpp/bindings"
|
alias kon="ncmpcpp -b ~/.config/ncmpcpp/bindings"
|
||||||
alias l='ls -l'
|
|
||||||
alias la='ls -la'
|
|
||||||
alias lg='lazygit'
|
|
||||||
alias ll='ls -l'
|
|
||||||
alias lla='ls -la'
|
|
||||||
alias ls='eza'
|
|
||||||
alias make="make -j 20"
|
|
||||||
alias mountUSB="mount ~/ExternalDrive" # Automagically mount and unmount my flashdrive
|
|
||||||
alias myip="curl ifconfig.me"
|
alias myip="curl ifconfig.me"
|
||||||
alias qsus="NIXPKGS_ALLOW_UNFREE=1 nix-shell -p quartus-prime-lite -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/fe7ab74a86d78ba00d144aa7a8da8c71a200c563.tar.gz"
|
alias ghidra="_JAVA_AWT_WM_NONREPARENTING=1 ghidra"
|
||||||
alias ssh="TERM=xterm ssh" #Fix foot issue in ssh
|
alias ls='eza'
|
||||||
alias tree="eza --tree"
|
|
||||||
alias umountUSB="umount ~/ExternalDrive"
|
|
||||||
alias unityAvi="~/Documents/Unity/Editors/2019.4.31f1/Editor/Unity -projectPath ~/ExternalDrive/Unity\ Projects/Avatar\ 3.0\ 2019"
|
|
||||||
alias v="nvim" # Launch neovim with 'v'
|
alias v="nvim" # Launch neovim with 'v'
|
||||||
|
alias mountUSB="mount /home/flyingstitchman/ExternalDrive" # Automagically mount and unmount my flashdrive
|
||||||
|
alias umountUSB="umount /home/flyingstitchman/ExternalDrive"
|
||||||
|
alias unityAvi="/home/flyingstitchman/Documents/Unity/Editors/2019.4.31f1/Editor/Unity -projectPath ~/ExternalDrive/Unity\ Projects/Avatar\ 3.0\ 2019"
|
||||||
|
alias ssh="TERM=xterm ssh" #Fix foot issue in ssh
|
||||||
|
alias gdb="gdb -x /usr/share/pwndbg/gdbinit.py" #pwntools for GDB
|
||||||
|
alias make="make -j 20"
|
||||||
|
alias cd="z"
|
||||||
|
alias imv="imv -b aa77bb"
|
||||||
|
alias find="fd"
|
||||||
|
alias tree="eza --tree"
|
||||||
|
alias icat="kitty +kitten icat"
|
||||||
|
|
||||||
# Automatically get new programs for autocompletion
|
# Automatically get new programs for autocompletion
|
||||||
|
|
||||||
|
@ -38,19 +40,6 @@ zshcache_time="$(date +%s%N)"
|
||||||
|
|
||||||
autoload -Uz add-zsh-hook
|
autoload -Uz add-zsh-hook
|
||||||
|
|
||||||
function osc7-pwd() {
|
|
||||||
emulate -L zsh # also sets localoptions for us
|
|
||||||
setopt extendedglob
|
|
||||||
local LC_ALL=C
|
|
||||||
printf '\e]2;%s%s\e\' ${PWD//(#m)([^@-Za-z&-;_~])/%${(l:2::0:)$(([##16]#MATCH))}}
|
|
||||||
}
|
|
||||||
|
|
||||||
function chpwd-osc7-pwd() {
|
|
||||||
(( ZSH_SUBSHELL )) || osc7-pwd
|
|
||||||
}
|
|
||||||
add-zsh-hook -Uz chpwd chpwd-osc7-pwd
|
|
||||||
|
|
||||||
|
|
||||||
rehash_precmd() {
|
rehash_precmd() {
|
||||||
if [[ -a /var/cache/zsh/pacman ]]; then
|
if [[ -a /var/cache/zsh/pacman ]]; then
|
||||||
local paccache_time="$(date -r /var/cache/zsh/pacman +%s%N)"
|
local paccache_time="$(date -r /var/cache/zsh/pacman +%s%N)"
|
||||||
|
@ -90,44 +79,52 @@ compinit
|
||||||
# End of lines added by compinstall
|
# End of lines added by compinstall
|
||||||
eval "$(zoxide init zsh)"
|
eval "$(zoxide init zsh)"
|
||||||
|
|
||||||
|
|
||||||
|
# Default Programs
|
||||||
|
export EDITOR=nvim
|
||||||
|
|
||||||
|
# Needed for pam_gnupg for ssh keys TO DO
|
||||||
|
#export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
||||||
export PATH="${PATH}:/home/flyingstitchman/.cargo/bin"
|
export PATH="${PATH}:/home/flyingstitchman/.cargo/bin"
|
||||||
|
|
||||||
|
# Ibus
|
||||||
|
GTK_IM_MODULE=fcitx
|
||||||
|
QT_IM_MODULE=fcitx
|
||||||
|
XMODIFIERS=@im=fcitx
|
||||||
|
|
||||||
# Clean Up
|
# Clean Up
|
||||||
export MBSYNCRC=$XDG_CONFIG_HOME/mbsync/config
|
export QT_QPA_PLATFORM=wayland
|
||||||
export PASSWORD_STORE_DIR=$XDG_CONFIG_HOME/password_store
|
export QT_QPA_PLATFORMTHEME=qt5ct
|
||||||
export NOTMUCH_CONFIG=$XDG_CONFIG_HOME/notmuch/config
|
# Fuck Gnome Devs, All my homies Hate Gnome Devs
|
||||||
|
#export GDK_DEBUG=1
|
||||||
|
export MBSYNCRC=${XDG_CONFIG_HOME:-~/.config}/mbsync/config
|
||||||
|
export PASSWORD_STORE_DIR=${XDG_CONFIG_HOME:-~/.config}/password_store
|
||||||
|
export GNUPGHOME=${XDG_DATA_HOME-~/.config}/gnupg
|
||||||
|
export NOTMUCH_CONFIG=${XDG_CONFIG_HOME-~/.config}/notmuch/config
|
||||||
|
export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
|
||||||
export KDEHOME="$XDG_CONFIG_HOME"/kde
|
export KDEHOME="$XDG_CONFIG_HOME"/kde
|
||||||
export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle
|
export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle
|
||||||
export GNUPGHOME=$XDG_DATA_HOME/gnupg
|
export GPG_TTY=$(tty)
|
||||||
|
export SDL_VIDEODRIVER=wayland
|
||||||
export GOPATH="$XDG_DATA_HOME"
|
export GOPATH="$XDG_DATA_HOME"
|
||||||
export GOMODCACHE="$XDG_CACHE_HOME"
|
export GOMODCACHE="$XDG_CACHE_HOME"
|
||||||
export GPG_TTY=$(tty)
|
|
||||||
export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages
|
export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages
|
||||||
export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
|
export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
|
||||||
export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default
|
export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default
|
||||||
export DOTNET_CLI_HOME="$XDG_CONFIG_HOME"/dotnet
|
export DOTNET_CLI_HOME="$XDG_CONFIG_HOME"/dotnet
|
||||||
export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
|
export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
|
||||||
export CARGO_HOME="$XDG_DATA_HOME"/cargo
|
export CARGO_HOME="$XDG_DATA_HOME"/cargo
|
||||||
|
# Nvidia moment
|
||||||
|
export WLR_NO_HARDWARE_CURSORS=1
|
||||||
|
|
||||||
alias dosbox="dosbox -conf $XDG_CONFIG_HOME/dosbox/dosbox.conf"
|
|
||||||
|
|
||||||
# Nixos Rebuilding
|
alias dosbox="dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf "
|
||||||
alias rbs="reconfig switch"
|
|
||||||
alias rbb="reconfig build"
|
|
||||||
|
|
||||||
reconfig() {
|
|
||||||
sudo nixos-rebuild --flake "/etc/nixos#$(cat /etc/hostname)" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Home Manager Variables
|
|
||||||
source ~/.local/state/nix/profiles/home-manager/home-path/etc/profile.d/hm-session-vars.sh
|
|
||||||
|
|
||||||
# Autostart Hyprland after all environmental Variables have been declared
|
# Autostart Hyprland after all environmental Variables have been declared
|
||||||
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
|
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
|
||||||
|
# export WLR_DRM_DEVICES=/dev/dri/card0
|
||||||
exec Hyprland
|
exec Hyprland
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export QSYS_ROOTDIR="~/.cache/paru/clone/quartus-free/pkg/quartus-free-quartus/opt/intelFPGA/21.1/quartus/sopc_builder/bin"
|
export QSYS_ROOTDIR="/home/flyingstitchman/.cache/paru/clone/quartus-free/pkg/quartus-free-quartus/opt/intelFPGA/21.1/quartus/sopc_builder/bin"
|
||||||
|
|
||||||
# Nix Direnv Support
|
|
||||||
eval "$(direnv hook zsh)"
|
|
||||||
|
|
177
flake.lock
177
flake.lock
|
@ -1,47 +1,28 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"catppuccin": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1742254251,
|
|
||||||
"narHash": "sha256-3wGCx5UR86pgurSYB//LsBMKAsw6qpiOpnzgShPQKkM=",
|
|
||||||
"owner": "catppuccin",
|
|
||||||
"repo": "nix",
|
|
||||||
"rev": "4cb9c621072312fb45c6e86b57e5fabd97f1b95d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "catppuccin",
|
|
||||||
"repo": "nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"lastModified": 1627913399,
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
"narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=",
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
"owner": "edolstra",
|
||||||
"revCount": 69,
|
"repo": "flake-compat",
|
||||||
"type": "tarball",
|
"rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2",
|
||||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"owner": "edolstra",
|
||||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1623875721,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "f7e004a55b120c02ecb6219596820fcd32ca8772",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -57,11 +38,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1740254115,
|
"lastModified": 1712390667,
|
||||||
"narHash": "sha256-MwxDtYB/MSGZlr/xS+ExGYH2QgHk73ShD40shxjad/Y=",
|
"narHash": "sha256-ebq+fJZfobqpsAdGDGpxNWSySbQejRwW9cdiil6krCo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "cb3f6e9b59d3a5e51ef9f7da2b8418d5c72aaef8",
|
"rev": "b787726a8413e11b074cde42704b4af32d95545c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -74,11 +55,11 @@
|
||||||
"mobile-nixos": {
|
"mobile-nixos": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737346419,
|
"lastModified": 1711757427,
|
||||||
"narHash": "sha256-YHByUFujAnfJJ2JnhHIJyohECr5o0EDmuRdyUcvnZGQ=",
|
"narHash": "sha256-PqHK0J9YCRKlxpJp+UG+/xpwfIQRPVUPspvbbP3FB2M=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "mobile-nixos",
|
"repo": "mobile-nixos",
|
||||||
"rev": "1498c4d7fd59026479469efdbfe30c78a7300d89",
|
"rev": "f7087f8fdbd1309af315ef8c92345320aadc5edf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -89,11 +70,11 @@
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1740089251,
|
"lastModified": 1712324865,
|
||||||
"narHash": "sha256-Y78mDBWoO8CLLTjQfPfII+KXFb6lAmF9GrLbyVBsIMM=",
|
"narHash": "sha256-+BatEWd4HlMeK7Ora+gYIkarjxFVCg9oKrIeybHIIX4=",
|
||||||
"owner": "Nixos",
|
"owner": "Nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "18e9f9753e9ae261bcc7d3abe15745686991fd30",
|
"rev": "f3b959627bca46a9f7052b8fbc464b8323e68c2c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -105,11 +86,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1741851582,
|
"lastModified": 1712163089,
|
||||||
"narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=",
|
"narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6607cf789e541e7873d40d3a8f7815ea92204f32",
|
"rev": "fd281bd6b7d3e32ddfa399853946f782553163b5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -119,120 +100,48 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-quartus": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1685573264,
|
|
||||||
"narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "380be19fbd2d9079f677978361792cb25e8a3635",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-22.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-xr": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": "nixpkgs_3",
|
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1740221878,
|
|
||||||
"narHash": "sha256-g9MxGpvOqLInb6/QoAFy/sy/SgYIVZbAPBCE1H2vZnA=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs-xr",
|
|
||||||
"rev": "348600e86789833a7f7c76a90e1e9464530768e1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs-xr",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739866667,
|
"lastModified": 1628148846,
|
||||||
"narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=",
|
"narHash": "sha256-V8aZJBROfNDk40cvFjKUnOnL7sF+BYwCQUUpLP8y4uE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680",
|
"rev": "9a8eb5a464f373e79d19d0ed2e53e0d31f78fe92",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"osu-nixos": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739866667,
|
"lastModified": 1695759061,
|
||||||
"narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=",
|
"narHash": "sha256-s9OYi0tzWSjFUaGLnLg08tTm8OEu1uZqGTtKmIRwHic=",
|
||||||
"owner": "NixOS",
|
"owner": "Asqiir",
|
||||||
"repo": "nixpkgs",
|
"repo": "osu-nixos",
|
||||||
"rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680",
|
"rev": "4e0096e1eee74383b9350962d8bff094648a7968",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "Asqiir",
|
||||||
"ref": "nixos-unstable",
|
"repo": "osu-nixos",
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"catppuccin": "catppuccin",
|
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"mobile-nixos": "mobile-nixos",
|
"mobile-nixos": "mobile-nixos",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-quartus": "nixpkgs-quartus",
|
"osu-nixos": "osu-nixos"
|
||||||
"nixpkgs-xr": "nixpkgs-xr"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs-xr",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1739829690,
|
|
||||||
"narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "3d0579f5cc93436052d94b73925b48973a104204",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
65
flake.nix
65
flake.nix
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
description = "System Configuration Flake";
|
description = "System Configuration Flake";
|
||||||
outputs = inputs@{
|
|
||||||
catppuccin,
|
|
||||||
|
outputs = inputs@{
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
nixpkgs-xr,
|
|
||||||
nixos-hardware,
|
nixos-hardware,
|
||||||
nixpkgs-quartus,
|
|
||||||
home-manager,
|
home-manager,
|
||||||
|
osu-nixos,
|
||||||
...
|
...
|
||||||
} : {
|
} : {
|
||||||
|
|
||||||
|
@ -15,34 +15,39 @@
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
catppuccin.nixosModules.catppuccin
|
|
||||||
|
|
||||||
|
./packages/default.nix
|
||||||
./hosts/malachite/default.nix
|
./hosts/malachite/default.nix
|
||||||
./users/stitchynyan/default.nix
|
./users/stitchynyan/default.nix
|
||||||
nixpkgs-xr.nixosModules.nixpkgs-xr
|
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
home-manager.extraSpecialArgs = {inherit inputs;};
|
home-manager.extraSpecialArgs = {inherit inputs;};
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.users.stitchynyan = {
|
home-manager.users.stitchynyan = import ./users/stitchynyan/home.nix;
|
||||||
imports = [
|
|
||||||
catppuccin.homeManagerModules.catppuccin
|
|
||||||
./users/stitchynyan/home.nix
|
|
||||||
./users/home.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
scarab = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "aarch64-linux";
|
||||||
|
modules = [
|
||||||
|
{ _module.args = { inherit inputs; }; }
|
||||||
|
(import "${inputs.mobile-nixos}/lib/configuration.nix" {
|
||||||
|
device = "oneplus-enchilada";
|
||||||
|
})
|
||||||
|
./packages/default.nix
|
||||||
|
./hosts/scarab/default.nix
|
||||||
|
./users/stitchynyan/default.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
lappy = nixpkgs.lib.nixosSystem {
|
lappy = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
catppuccin.nixosModules.catppuccin
|
|
||||||
nixos-hardware.nixosModules.framework-12th-gen-intel
|
nixos-hardware.nixosModules.framework-12th-gen-intel
|
||||||
|
|
||||||
|
./packages/default.nix
|
||||||
./hosts/lappy/default.nix
|
./hosts/lappy/default.nix
|
||||||
./users/stitchynyan/default.nix
|
./users/stitchynyan/default.nix
|
||||||
|
|
||||||
|
@ -51,13 +56,7 @@
|
||||||
home-manager.extraSpecialArgs = {inherit inputs;};
|
home-manager.extraSpecialArgs = {inherit inputs;};
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.users.stitchynyan = {
|
home-manager.users.stitchynyan = import ./users/stitchynyan/home.nix;
|
||||||
imports = [
|
|
||||||
catppuccin.homeManagerModules.catppuccin
|
|
||||||
./users/stitchynyan/home.nix
|
|
||||||
./users/home.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -66,27 +65,9 @@
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
|
|
||||||
|
./packages/default.nix
|
||||||
./hosts/gemini/default.nix
|
./hosts/gemini/default.nix
|
||||||
./users/nyadmin/default.nix
|
./users/nyadmin/default.nix
|
||||||
./users/cirno/default.nix
|
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager.extraSpecialArgs = {inherit inputs;};
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.users.nyadmin = import ./users/nyadmin/home.nix;
|
|
||||||
home-manager.users.cirno = import ./users/cirno/home.nix;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
tanzanite = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
|
|
||||||
./hosts/tanzanite/default.nix
|
|
||||||
./users/nyadmin/default.nix
|
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
|
@ -101,7 +82,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
catppuccin.url = "github:catppuccin/nix";
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/master";
|
url = "github:nix-community/home-manager/master";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -111,8 +91,7 @@
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
nixpkgs-xr.url = "github:nix-community/nixpkgs-xr";
|
|
||||||
nixos-hardware.url = "github:Nixos/nixos-hardware/master";
|
nixos-hardware.url = "github:Nixos/nixos-hardware/master";
|
||||||
nixpkgs-quartus.url = "github:nixos/nixpkgs/nixos-22.05";
|
osu-nixos.url = "github:Asqiir/osu-nixos";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
{ lib, pkgs, config, ...}:
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
stitchyconf = {
|
|
||||||
dev.stm32.enable = lib.mkEnableOption "Enables STM32 Development";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
# Group for probe-rs rules
|
|
||||||
users.groups.plugdev = {};
|
|
||||||
|
|
||||||
# Udev Files
|
|
||||||
services.udev.packages = lib.mkIf config.stitchyconf.dev.stm32.enable [
|
|
||||||
(pkgs.writeTextFile {
|
|
||||||
name = "probe-rs-udev";
|
|
||||||
destination = "/etc/udev/rules.d/69-probe-rs.rules";
|
|
||||||
text = (builtins.readFile ./probe-rs.rules);
|
|
||||||
})];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,146 +0,0 @@
|
||||||
# Copy this file to /etc/udev/rules.d/
|
|
||||||
# If rules fail to reload automatically, you can refresh udev rules
|
|
||||||
# with the command "udevadm control --reload"
|
|
||||||
|
|
||||||
# This rules are based on the udev rules from the OpenOCD project, with unsupported probes removed.
|
|
||||||
# See http://openocd.org/ for more details.
|
|
||||||
#
|
|
||||||
# This file is available under the GNU General Public License v2.0
|
|
||||||
|
|
||||||
ACTION!="add|change", GOTO="probe_rs_rules_end"
|
|
||||||
|
|
||||||
SUBSYSTEM=="gpio", MODE="0660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
|
|
||||||
SUBSYSTEM!="usb|tty|hidraw", GOTO="probe_rs_rules_end"
|
|
||||||
|
|
||||||
# Please keep this list sorted by VID:PID
|
|
||||||
|
|
||||||
# STMicroelectronics ST-LINK V1
|
|
||||||
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3744", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
|
|
||||||
# STMicroelectronics ST-LINK/V2
|
|
||||||
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
|
|
||||||
# STMicroelectronics ST-LINK/V2.1
|
|
||||||
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
|
|
||||||
# STMicroelectronics STLINK-V3
|
|
||||||
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3753", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3754", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
|
|
||||||
# SEGGER J-Link
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0101", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0102", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0103", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0104", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0105", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0107", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0108", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1001", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1002", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1003", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1004", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1005", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1006", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1007", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1008", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1009", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1010", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1011", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1012", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1013", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1014", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1015", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1016", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1017", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1018", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1019", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1020", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1021", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1022", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1023", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1024", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1025", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1026", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1027", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1028", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1029", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1050", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1051", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1052", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1053", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1054", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1055", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1056", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1057", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1058", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1059", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1060", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1061", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1062", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1063", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1064", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1065", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1066", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1067", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1068", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1069", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
|
|
||||||
# FT232H
|
|
||||||
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
# FT2232x
|
|
||||||
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
# FT4232H
|
|
||||||
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
|
|
||||||
# FTDI-based Olimex devices
|
|
||||||
ATTRS{idVendor}=="0x15ba", ATTRS{idProduct}=="0x0003", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="0x15ba", ATTRS{idProduct}=="0x0004", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="0x15ba", ATTRS{idProduct}=="0x002a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
ATTRS{idVendor}=="0x15ba", ATTRS{idProduct}=="0x002b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
|
|
||||||
# Espressif USB JTAG/serial debug unit
|
|
||||||
ATTRS{idVendor}=="303a", ATTRS{idProduct}=="1001", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
# Espressif USB Bridge
|
|
||||||
ATTRS{idVendor}=="303a", ATTRS{idProduct}=="1002", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
|
|
||||||
# CMSIS-DAP compatible adapters
|
|
||||||
ATTRS{product}=="*CMSIS-DAP*", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
# WCH Link (CMSIS-DAP compatible adapter)
|
|
||||||
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="8011", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
||||||
|
|
||||||
LABEL="probe_rs_rules_end"
|
|
|
@ -6,7 +6,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {};
|
options = {};
|
||||||
imports = [ ../packages/default.nix ../users/default.nix ./config/stm32 ];
|
imports = [ ../packages/default.nix ];
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
hardware = {
|
hardware = {
|
||||||
|
@ -15,24 +15,16 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = lib.mkDefault pkgs.linuxPackages_zen;
|
#kernelPackages = lib.mkDefault pkgs.linuxPackages_zen;
|
||||||
loader = {
|
loader = {
|
||||||
efi.canTouchEfiVariables = lib.mkDefault true;
|
efi.canTouchEfiVariables = lib.mkDefault true;
|
||||||
systemd-boot.enable = lib.mkDefault true;
|
systemd-boot.enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
|
||||||
appimage.binfmt = true;
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
security.sudo.wheelNeedsPassword = false;
|
security.sudo.wheelNeedsPassword = false;
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
services = {
|
services = {
|
||||||
fstrim.enable = true;
|
|
||||||
resolved = {
|
resolved = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dnsovertls = "opportunistic";
|
dnsovertls = "opportunistic";
|
||||||
|
@ -72,30 +64,6 @@ in
|
||||||
allowedUDPPorts = [ 22000 ];
|
allowedUDPPorts = [ 22000 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.udev.packages = [
|
|
||||||
(pkgs.writeTextFile {
|
|
||||||
|
|
||||||
name = "alterra-udev";
|
|
||||||
destination = "/etc/udev/rules.d/92-alterra.rules";
|
|
||||||
text = ''
|
|
||||||
# USB-Blaster
|
|
||||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="0666"
|
|
||||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6002", MODE="0666"
|
|
||||||
|
|
||||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6003", MODE="0666"
|
|
||||||
|
|
||||||
# USB-Blaster II
|
|
||||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6010", MODE="0666"
|
|
||||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6810", MODE="0666"
|
|
||||||
'';
|
|
||||||
})];
|
|
||||||
|
|
||||||
services.openssh = lib.mkIf (config.stitchyconf.form == "server"){
|
|
||||||
enable = true;
|
|
||||||
settings.PasswordAuthentication = false;
|
|
||||||
settings.KbdInteractiveAuthentication = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.etc.hosts.mode = "0644";
|
environment.etc.hosts.mode = "0644";
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -18,6 +18,12 @@
|
||||||
networking.hostName = "gemini";
|
networking.hostName = "gemini";
|
||||||
time.timeZone = "America/Los_Angeles";
|
time.timeZone = "America/Los_Angeles";
|
||||||
|
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings.PasswordAuthentication = false;
|
||||||
|
settings.KbdInteractiveAuthentication = false;
|
||||||
|
};
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the firewall.
|
||||||
networking.firewall.allowedTCPPorts = [ 22 25565 ];
|
networking.firewall.allowedTCPPorts = [ 22 25565 ];
|
||||||
networking.firewall.allowedUDPPorts = [ 51820 ];
|
networking.firewall.allowedUDPPorts = [ 51820 ];
|
||||||
|
|
|
@ -10,14 +10,13 @@
|
||||||
|
|
||||||
stitchyconf = {
|
stitchyconf = {
|
||||||
artPkgs.enable = true;
|
artPkgs.enable = true;
|
||||||
dev.stm32.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.logind.powerKey = "ignore";
|
services.logind.powerKey = "ignore";
|
||||||
services.logind.powerKeyLongPress = "poweroff";
|
services.logind.powerKeyLongPress = "poweroff";
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "lappy";
|
hostName = "lappy";
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
};
|
};
|
||||||
time.timeZone = "America/Lost_Angeles";
|
time.timeZone = "America/Lost_Angeles";
|
||||||
|
|
||||||
|
@ -36,16 +35,13 @@
|
||||||
"kernel.yama.ptrace_scope=0"
|
"kernel.yama.ptrace_scope=0"
|
||||||
];
|
];
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation.libvirtd.enable = true;
|
||||||
docker.enable = true;
|
|
||||||
libvirtd.enable = true;
|
|
||||||
waydroid.enable = true;
|
|
||||||
};
|
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
hardware.bluetooth.settings.General.Experimental = true;
|
hardware.bluetooth.settings.General.Experimental = true;
|
||||||
hardware.graphics = {
|
hardware.opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit= true;
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
extraPackages = lib.attrVals [
|
extraPackages = lib.attrVals [
|
||||||
"intel-compute-runtime"
|
"intel-compute-runtime"
|
||||||
"intel-media-driver"
|
"intel-media-driver"
|
||||||
|
@ -74,7 +70,7 @@
|
||||||
PCIE_ASPM_ON_AC = "default";
|
PCIE_ASPM_ON_AC = "default";
|
||||||
PCIE_ASPM_ON_BAT = "powersupersave";
|
PCIE_ASPM_ON_BAT = "powersupersave";
|
||||||
PLATFORM_PROFILE_ON_BAT = "low-power";
|
PLATFORM_PROFILE_ON_BAT = "low-power";
|
||||||
RUNTIME_PM_ON_BAT = "auto";
|
RUNTIME_PM_ON_BAT = true;
|
||||||
WOL_DISABLE = true;
|
WOL_DISABLE = true;
|
||||||
SCHED_POWERSAVE_ON_BAT = true;
|
SCHED_POWERSAVE_ON_BAT = true;
|
||||||
|
|
||||||
|
|
|
@ -10,28 +10,17 @@
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems."/" =
|
||||||
"/" = {
|
{ device = "/dev/disk/by-uuid/d626409d-8166-45c2-a168-09dfab31b8a4";
|
||||||
device = "/dev/disk/by-uuid/d626409d-8166-45c2-a168-09dfab31b8a4";
|
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd" "subvol=@nix-root" ];
|
options = [ "subvol=@nix-root" ];
|
||||||
};
|
};
|
||||||
"/home" = {
|
|
||||||
device = "/dev/disk/by-uuid/d626409d-8166-45c2-a168-09dfab31b8a4";
|
fileSystems."/home" =
|
||||||
|
{ device = "/dev/disk/by-uuid/d626409d-8166-45c2-a168-09dfab31b8a4";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd" "subvol=@home" ];
|
options = [ "subvol=@home" ];
|
||||||
};
|
};
|
||||||
"/nix" = {
|
|
||||||
device = "/dev/disk/by-uuid/d626409d-8166-45c2-a168-09dfab31b8a4";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "compress=zstd" "subvol=@nix-store" "noatime"];
|
|
||||||
};
|
|
||||||
"/persist" = {
|
|
||||||
device = "/dev/disk/by-uuid/d626409d-8166-45c2-a168-09dfab31b8a4";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "compress=zstd" "subvol=@persist" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.initrd.luks.devices."luksdev".device = "/dev/disk/by-uuid/100a5596-671b-48ba-a1d1-0723559baf87";
|
boot.initrd.luks.devices."luksdev".device = "/dev/disk/by-uuid/100a5596-671b-48ba-a1d1-0723559baf87";
|
||||||
|
|
||||||
|
|
|
@ -1,87 +1,65 @@
|
||||||
{ config, nixpkgs-xr, pkgs, lib, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
passthrough = pkgs.writeShellApplication {
|
passthrough = pkgs.writeShellScript "pasthrough.sh" ''
|
||||||
name = "passthrough.sh";
|
GUEST_NAME="$1"
|
||||||
runtimeInputs = lib.attrVals [ "coreutils" "kmod" "libvirt" "procps" ] pkgs;
|
HOOK_NAME="$2"
|
||||||
text = ''
|
STATE_NAME="$3"
|
||||||
GUEST_NAME="$1"
|
|
||||||
HOOK_NAME="$2"
|
|
||||||
STATE_NAME="$3"
|
|
||||||
|
|
||||||
set -x
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# For the windows 10 VM
|
||||||
|
if [[ "$GUEST_NAME" == "win10" ]]; then
|
||||||
|
|
||||||
# For the windows 10 VM
|
# Prepare hook
|
||||||
if [[ "$GUEST_NAME" == "win10" ]]; then
|
if [[ "$HOOK_NAME/$STATE_NAME" == "prepare/begin" ]]; then
|
||||||
|
|
||||||
# Prepare hook
|
# Remove Hyprland
|
||||||
if [[ "$HOOK_NAME/$STATE_NAME" == "prepare/begin" ]]; then
|
${pkgs.busybox}/bin/pkill Hyprland
|
||||||
|
|
||||||
# Remove Hyprland
|
# Unbind VTconsoles
|
||||||
#pkill Hyprland
|
${pkgs.busybox}/bin/echo 0 > /sys/class/vtconsole/vtcon0/bind
|
||||||
|
${pkgs.busybox}/bin/echo 0 > /sys/class/vtconsole/vtcon1/bind
|
||||||
|
|
||||||
# Unbind VTconsoles
|
# Unbind EFI-Framebuffer
|
||||||
echo 0 > /sys/class/vtconsole/vtcon0/bind
|
${pkgs.busybox}/bin/echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind
|
||||||
echo 0 > /sys/class/vtconsole/vtcon1/bind
|
|
||||||
|
|
||||||
# Unbind EFI-Framebuffer
|
# Unload Modules
|
||||||
#echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind
|
${pkgs.busybox}/bin/modprobe -r nvidia_drm nvidia_modeset nvidia_uvm nvidia
|
||||||
|
|
||||||
# Unbind the GPU from display driver
|
# Unbind the GPU from display driver
|
||||||
virsh nodedev-detach pci_0000_03_00_0
|
${pkgs.libvirt}/bin/virsh nodedev-detach pci_0000_01_00_0
|
||||||
virsh nodedev-detach pci_0000_03_00_1
|
${pkgs.libvirt}/bin/virsh nodedev-detach pci_0000_01_00_1
|
||||||
virsh nodedev-detach pci_0000_03_00_2
|
|
||||||
|
|
||||||
# Unload Modules
|
# Load VFIO Kernel Module
|
||||||
modprobe -r amdgpu
|
${pkgs.busybox}/bin/modprobe vfio_pci
|
||||||
|
|
||||||
# We love race conditions
|
elif [[ "$HOOK_NAME/$STATE_NAME" == "release/end" ]]; then
|
||||||
sleep 2
|
|
||||||
|
|
||||||
# Load VFIO Kernel Module
|
# Re-Bind GPU to Nvidia Driver (replace the pci addresses with yours)
|
||||||
modprobe vfio vfio_pci vfio_iommu_type1
|
${pkgs.libvirt}/bin/virsh nodedev-reattach pci_0000_01_00_0
|
||||||
|
${pkgs.libvirt}/bin/virsh nodedev-reattach pci_0000_01_00_1
|
||||||
|
|
||||||
# Performance Governer
|
${pkgs.busybox}/bin/modprobe -r vfio-pci
|
||||||
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "performance" > "$file"; done
|
|
||||||
|
|
||||||
# Isolating CPU
|
#bind efi
|
||||||
systemctl set-property --runtime -- user.slice AllowedCPUs=16-19
|
${pkgs.busybox}/bin/echo "efi-framebuffer.0" > /sys/bus/platform/drivers/efi-framebuffer/bind
|
||||||
systemctl set-property --runtime -- system.slice AllowedCPUs=16-19
|
|
||||||
systemctl set-property --runtime -- init.scope AllowedCPUs=16-19
|
|
||||||
|
|
||||||
elif [[ "$HOOK_NAME/$STATE_NAME" == "release/end" ]]; then
|
# Reload nvidia modules
|
||||||
|
${pkgs.busybox}/bin/modprobe nvidia_drm
|
||||||
|
${pkgs.busybox}/bin/modprobe nvidia_modeset
|
||||||
|
${pkgs.busybox}/bin/modprobe nvidia_uvm
|
||||||
|
${pkgs.busybox}/bin/modprobe nvidia
|
||||||
|
|
||||||
modprobe -r vfio_iommu_type1 vfio_pci vfio
|
# Rebind VT consoles
|
||||||
|
${pkgs.busybox}/bin/echo 1 > /sys/class/vtconsole/vtcon0/bind
|
||||||
# Re-Bind GPU to Host
|
${pkgs.busybox}/bin/echo 1 > /sys/class/vtconsole/vtcon1/bind
|
||||||
virsh nodedev-reattach pci_0000_03_00_0
|
|
||||||
virsh nodedev-reattach pci_0000_03_00_1
|
|
||||||
virsh nodedev-reattach pci_0000_03_00_2
|
|
||||||
|
|
||||||
# Rebind VT consoles
|
|
||||||
echo 1 > /sys/class/vtconsole/vtcon0/bind
|
|
||||||
echo 1 > /sys/class/vtconsole/vtcon1/bind
|
|
||||||
|
|
||||||
sleep 2
|
|
||||||
|
|
||||||
# Bind Framebuffer
|
|
||||||
#echo "efi-framebuffer.0" > /sys/bus/platform/drivers/efi-framebuffer/bind
|
|
||||||
|
|
||||||
# Reload Modules
|
|
||||||
modprobe amdgpu
|
|
||||||
|
|
||||||
# Back to On-Demand Scheduler
|
|
||||||
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "ondemand" > "$file"; done
|
|
||||||
|
|
||||||
systemctl set-property --runtime -- user.slice AllowedCPUs=0-19
|
|
||||||
systemctl set-property --runtime -- system.slice AllowedCPUs=0-19
|
|
||||||
systemctl set-property --runtime -- init.scope AllowedCPUs=0-19
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
'';
|
fi
|
||||||
};
|
|
||||||
|
'';
|
||||||
in {
|
in {
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
|
@ -89,34 +67,18 @@ in {
|
||||||
../default.nix
|
../default.nix
|
||||||
];
|
];
|
||||||
virtualisation.libvirtd.hooks.qemu = {
|
virtualisation.libvirtd.hooks.qemu = {
|
||||||
passthrough = "${passthrough}/bin/passthrough.sh";
|
passthrough = "${passthrough}";
|
||||||
};
|
};
|
||||||
|
|
||||||
stitchyconf = {
|
stitchyconf = {
|
||||||
artPkgs.enable = true;
|
artPkgs.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation.libvirtd = {
|
virtualisation.libvirtd.enable = true;
|
||||||
enable = true;
|
|
||||||
onBoot = "ignore";
|
|
||||||
};
|
|
||||||
hardware = {
|
hardware = {
|
||||||
opentabletdriver.enable = true;
|
|
||||||
steam-hardware.enable = true;
|
steam-hardware.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
services.syncthing = {
|
|
||||||
enable = true;
|
|
||||||
user = "stitchynyan";
|
|
||||||
openDefaultPorts = true;
|
|
||||||
databaseDir = "/home/stitchynyan/.local/share/syncthing";
|
|
||||||
dataDir = "/home/stitchynyan";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.wlx-overlay-s ];
|
|
||||||
|
|
||||||
networking.hostName = "malachite";
|
networking.hostName = "malachite";
|
||||||
|
|
||||||
time.timeZone = "America/Los_Angeles";
|
time.timeZone = "America/Los_Angeles";
|
||||||
|
|
|
@ -7,12 +7,8 @@
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-intel" "vfio-pci" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = lib.attrVals [ "rtl8812au" ] config.boot.kernelPackages;
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
# https://gitlab.com/qemu-project/qemu/-/issues/2574
|
|
||||||
# Might bisect or something if I get around to it
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_6_6;
|
|
||||||
|
|
||||||
boot.kernelParams = [
|
boot.kernelParams = [
|
||||||
"loglevel=3"
|
"loglevel=3"
|
||||||
|
@ -24,22 +20,22 @@
|
||||||
"/" =
|
"/" =
|
||||||
{ device = "/dev/disk/by-uuid/8e30bb30-eacf-4d7d-bcec-c2b39982de13";
|
{ device = "/dev/disk/by-uuid/8e30bb30-eacf-4d7d-bcec-c2b39982de13";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=nix" "compress=zstd" ];
|
options = [ "subvol=nix" ];
|
||||||
};
|
};
|
||||||
"/home" = {
|
"/home" = {
|
||||||
device = "/dev/disk/by-uuid/8e30bb30-eacf-4d7d-bcec-c2b39982de13";
|
device = "/dev/disk/by-uuid/8e30bb30-eacf-4d7d-bcec-c2b39982de13";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=homes/stitchymain" "compress=zstd" ];
|
options = [ "subvol=homes/stitchymain" ];
|
||||||
};
|
};
|
||||||
"/nix/store" = {
|
"/nix/store" = {
|
||||||
device = "/dev/disk/by-uuid/8e30bb30-eacf-4d7d-bcec-c2b39982de13";
|
device = "/dev/disk/by-uuid/8e30bb30-eacf-4d7d-bcec-c2b39982de13";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=store" "noatime" "compress=zstd" ];
|
options = [ "subvol=store" ];
|
||||||
};
|
};
|
||||||
"/persist" = {
|
"/persist" = {
|
||||||
device = "/dev/disk/by-uuid/8e30bb30-eacf-4d7d-bcec-c2b39982de13";
|
device = "/dev/disk/by-uuid/8e30bb30-eacf-4d7d-bcec-c2b39982de13";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@persist" "compress=zstd" ];
|
options = [ "subvol=@persist" ];
|
||||||
};
|
};
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
device = "/dev/disk/by-uuid/CB12-5062";
|
device = "/dev/disk/by-uuid/CB12-5062";
|
||||||
|
@ -48,27 +44,27 @@
|
||||||
"/home/stitchynyan/Music" = {
|
"/home/stitchynyan/Music" = {
|
||||||
device = "/dev/disk/by-uuid/feb8239f-5d09-4184-8e46-52185beaa040";
|
device = "/dev/disk/by-uuid/feb8239f-5d09-4184-8e46-52185beaa040";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=music/stitchtunes" "compress=zstd" "x-systemd.automount" ];
|
options = [ "subvol=music/stitchtunes" "x-systemd.automount" ];
|
||||||
};
|
};
|
||||||
"/home/stitchynyan/Pictures" = {
|
"/home/stitchynyan/Pictures" = {
|
||||||
device = "/dev/disk/by-uuid/feb8239f-5d09-4184-8e46-52185beaa040";
|
device = "/dev/disk/by-uuid/feb8239f-5d09-4184-8e46-52185beaa040";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=pictures/stitchpics" "compress=zstd" "x-systemd.automount" ];
|
options = [ "subvol=pictures/stitchpics" "x-systemd.automount" ];
|
||||||
};
|
};
|
||||||
"/home/stitchynyan/Programs/Steam" = {
|
"/home/stitchynyan/Programs/Steam" = {
|
||||||
device = "/dev/disk/by-uuid/feb8239f-5d09-4184-8e46-52185beaa040";
|
device = "/dev/disk/by-uuid/feb8239f-5d09-4184-8e46-52185beaa040";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=games/stitchgames" "compress=zstd" "x-systemd.automount" ];
|
options = [ "subvol=games/stitchgames" "x-systemd.automount" ];
|
||||||
};
|
};
|
||||||
"/home/stitchynyan/Videos" = {
|
"/home/stitchynyan/Videos" = {
|
||||||
device = "/dev/disk/by-uuid/feb8239f-5d09-4184-8e46-52185beaa040";
|
device = "/dev/disk/by-uuid/feb8239f-5d09-4184-8e46-52185beaa040";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=videos/stitchshows" "compress=zstd" "x-systemd.automount" ];
|
options = [ "subvol=videos/stitchshows" "x-systemd.automount" ];
|
||||||
};
|
};
|
||||||
"/home/stitchynyan/VirtualMachines" = {
|
"/home/stitchynyan/VirtualMachines" = {
|
||||||
device = "/dev/disk/by-uuid/feb8239f-5d09-4184-8e46-52185beaa040";
|
device = "/dev/disk/by-uuid/feb8239f-5d09-4184-8e46-52185beaa040";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=virtualmachines/stitchvms" "compress=zstd" "x-systemd.automount" ];
|
options = [ "subvol=virtualmachines/stitchvms" "x-systemd.automount" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -80,21 +76,23 @@
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
services.xserver.displayManager.lightdm.enable = false;
|
services.xserver.displayManager.lightdm.enable = false;
|
||||||
services.monado = {
|
services.monado = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultRuntime = true;
|
defaultRuntime = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.services.monado.environment = {
|
hardware = {
|
||||||
STEAMVR_LH_ENABLE = "1";
|
opengl = {
|
||||||
XRT_COMPOSITOR_COMPUTE = "1";
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
graphics = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true;
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
};
|
||||||
|
nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
powerManagement.enable = true;
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
101
hosts/scarab/default.nix
Normal file
101
hosts/scarab/default.nix
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
{ config, inputs, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../default.nix
|
||||||
|
#"${inputs.mobile-nixos}/modules/quirks/qualcomm/sdm845-modem.nix"
|
||||||
|
#"${inputs.mobile-nixos}/modules/quirks/audio.nix"
|
||||||
|
];
|
||||||
|
|
||||||
|
stitchyconf.form = "handheld";
|
||||||
|
|
||||||
|
mobile = {
|
||||||
|
beautification = {
|
||||||
|
silentBoot = lib.mkDefault true;
|
||||||
|
splash = lib.mkDefault true;
|
||||||
|
};
|
||||||
|
boot.stage-1 = {
|
||||||
|
kernel.useStrictKernelConfig = true;
|
||||||
|
networking.enable = true;
|
||||||
|
};
|
||||||
|
quirks = {
|
||||||
|
audio.alsa-ucm-meld = true;
|
||||||
|
qualcomm.sdm845-modem.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.loader = {
|
||||||
|
efi.canTouchEfiVariables = false;
|
||||||
|
systemd-boot.enable = false;
|
||||||
|
};
|
||||||
|
#services.openssh.enable = true;
|
||||||
|
services.xserver.desktopManager.phosh = {
|
||||||
|
enable = true;
|
||||||
|
user = "stitchynyan";
|
||||||
|
group = "users";
|
||||||
|
};
|
||||||
|
|
||||||
|
#services.xserver.desktopManager.plasma5 = {
|
||||||
|
# enable = true;
|
||||||
|
# mobile.enable = true;
|
||||||
|
#};
|
||||||
|
|
||||||
|
programs.firefox.enable = true;
|
||||||
|
programs.calls.enable = true;
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
bluetooth.enable = true;
|
||||||
|
pulseaudio.enable = lib.mkForce false;
|
||||||
|
sensor.iio.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.networkmanager = {
|
||||||
|
enable = true;
|
||||||
|
unmanaged = [ "rndis0" "usb0" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
/*services.pipewire.wireplumber.configPackages = [
|
||||||
|
(pkgs.writeTextDir "share/wireplumber/quailcum.lua.d/51-qcom-sdm845.lua" ''
|
||||||
|
${builtins.readFile (pkgs.fetchurl {
|
||||||
|
url = "https://gitlab.com/postmarketOS/pmaports/-/raw/0aa9524204e9c9c002c860b87c972bc2ebf025f3/device/community/soc-qcom-sdm845/51-qcom-sdm845.lua";
|
||||||
|
hash = "sha256-56oNJJyuZZe1Iig1xskDuyazw3PbRZtmU/YRFUTqjwk=";
|
||||||
|
})}
|
||||||
|
'')
|
||||||
|
];*/
|
||||||
|
|
||||||
|
services.pipewire.wireplumber.configPackages = [
|
||||||
|
(pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/51-qcom-sdm845.conf" ''
|
||||||
|
monitor.alsa.rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
node.name = "~alsa_output.*"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
actions = {
|
||||||
|
update-props = {
|
||||||
|
audio.format = "S16LE"
|
||||||
|
audio.rate = 48000
|
||||||
|
api.alsa.period-size = 4096
|
||||||
|
api.alsa.period-num = 6
|
||||||
|
api.alsa.headroom = 512
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings.PasswordAuthentication = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||||
|
"oneplus-sdm845-firmware"
|
||||||
|
"oneplus-sdm845-firmware-xz"
|
||||||
|
];
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
}
|
|
@ -1,164 +0,0 @@
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
let
|
|
||||||
|
|
||||||
in {
|
|
||||||
imports = [ ../default.nix ];
|
|
||||||
|
|
||||||
stitchyconf = {
|
|
||||||
form = "server";
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "tanzanite";
|
|
||||||
time.timeZone = "America/Los_Angeles";
|
|
||||||
|
|
||||||
virtualisation.docker = {
|
|
||||||
enable = true;
|
|
||||||
daemon.settings = {
|
|
||||||
data-root = "/opt/data/docker-data";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
security.acme = {
|
|
||||||
acceptTerms = true;
|
|
||||||
defaults.email = "stitchy@stitchy.moe";
|
|
||||||
defaults.dnsProvider = "porkbun";
|
|
||||||
defaults.environmentFile = "/persist/acme/porkbun.tokens";
|
|
||||||
certs = {
|
|
||||||
"turn.stitchy.moe" = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nginx = {
|
|
||||||
enable = true;
|
|
||||||
recommendedProxySettings = true;
|
|
||||||
recommendedTlsSettings = true;
|
|
||||||
clientMaxBodySize = "100m";
|
|
||||||
virtualHosts = {
|
|
||||||
"stitchy.moe" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
root = "/opt/www/stitchy.moe/public";
|
|
||||||
extraConfig = ''
|
|
||||||
add_header 'Access-Control-Allow-Origin' '*' always;
|
|
||||||
error_page 404 /404.html;
|
|
||||||
location = /404.html {
|
|
||||||
internal;
|
|
||||||
}
|
|
||||||
location ^~/shaders/ {
|
|
||||||
alias /opt/www/shader-web-test/;
|
|
||||||
}
|
|
||||||
location ^~/files/ {
|
|
||||||
alias /opt/www/files/;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
"gay.stitchy.moe" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:3333";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"matrix.stitchy.moe" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:9008";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"syncv3.stitchy.moe" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:8009";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall = {
|
|
||||||
allowedTCPPorts = [ 22 80 222 443 3478 5349 ];
|
|
||||||
allowedUDPPorts = [ 3478 5349 ];
|
|
||||||
allowedUDPPortRanges = [
|
|
||||||
{ from = 19000; to = 20000; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Boot Config
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
# Redundant Storage
|
|
||||||
fileSystems."/opt/data" = {
|
|
||||||
device = "/dev/disk/by-uuid/0acaee69-07df-45f3-a2f4-65e2f3fda529";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@data" "compress=zstd" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/opt/docker-containers" = {
|
|
||||||
device = "/dev/disk/by-uuid/0acaee69-07df-45f3-a2f4-65e2f3fda529";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@docker-containers" "compress=zstd" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/opt/www" = {
|
|
||||||
device = "/dev/disk/by-uuid/0acaee69-07df-45f3-a2f4-65e2f3fda529";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@www" "compress=zstd" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Non-Redundant Storage
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/ac31f656-1882-415e-bbb7-b4d24c0af01c";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@nix-root" "compress=zstd"];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/home" =
|
|
||||||
{ device = "/dev/disk/by-uuid/ac31f656-1882-415e-bbb7-b4d24c0af01c";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@nix-home" "compress=zstd"];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/nix/store" =
|
|
||||||
{ device = "/dev/disk/by-uuid/ac31f656-1882-415e-bbb7-b4d24c0af01c";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@nix" "noatime" "compress=zstd"];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/persist" =
|
|
||||||
{ device = "/dev/disk/by-uuid/ac31f656-1882-415e-bbb7-b4d24c0af01c";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@persist" "compress=zstd"];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/262D-F161";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices =
|
|
||||||
[ { device = "/dev/disk/by-uuid/5c007a16-9f0f-42d0-8761-63bea3120f6d"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
# Static Networking
|
|
||||||
systemd.network.enable = true;
|
|
||||||
networking.useNetworkd = true;
|
|
||||||
systemd.network.networks."10-lan" = {
|
|
||||||
matchConfig.Name = "enp0s31f6";
|
|
||||||
address = [
|
|
||||||
"192.168.51.3/24"
|
|
||||||
];
|
|
||||||
routes = [
|
|
||||||
{ Gateway = "192.168.51.1"; }
|
|
||||||
];
|
|
||||||
linkConfig.RequiredForOnline = "routable";
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
system.stateVersion = "24.11";
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, inputs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
artPkgs = lib.attrVals [
|
artPkgs = lib.attrVals [
|
||||||
|
@ -11,35 +11,37 @@ let
|
||||||
] pkgs;
|
] pkgs;
|
||||||
handheldPkgs = lib.attrVals [
|
handheldPkgs = lib.attrVals [
|
||||||
"chatty"
|
"chatty"
|
||||||
|
"fluffychat"
|
||||||
|
"gnome-console"
|
||||||
"gnome-text-editor"
|
"gnome-text-editor"
|
||||||
"megapixels"
|
"megapixels"
|
||||||
] pkgs;
|
] pkgs;
|
||||||
pcPkgs = lib.attrVals [
|
pcPkgs = lib.attrVals [
|
||||||
"brightnessctl"
|
#osu-lazer
|
||||||
"clipman"
|
|
||||||
"cyrus-sasl-xoauth2"
|
|
||||||
"dracula-theme"
|
"dracula-theme"
|
||||||
"easyeffects"
|
|
||||||
"gamescope"
|
|
||||||
"libnotify"
|
|
||||||
"mutt-wizard"
|
|
||||||
"powertop"
|
|
||||||
"prettypst"
|
|
||||||
"wl-clipboard"
|
"wl-clipboard"
|
||||||
|
"brightnessctl"
|
||||||
|
"powertop"
|
||||||
|
"easyeffects"
|
||||||
|
"mutt-wizard"
|
||||||
|
"gamescope"
|
||||||
|
"cyrus-sasl-xoauth2"
|
||||||
|
"libnotify"
|
||||||
|
"networkmanager-openvpn"
|
||||||
# temporary home manager things
|
# temporary home manager things
|
||||||
"eww"
|
|
||||||
"ifuse"
|
|
||||||
"img2pdf"
|
|
||||||
"inotify-tools"
|
"inotify-tools"
|
||||||
|
"eww"
|
||||||
"jq"
|
"jq"
|
||||||
"libimobiledevice"
|
"texliveFull"
|
||||||
|
"pandoc"
|
||||||
|
"img2pdf"
|
||||||
"socat"
|
"socat"
|
||||||
"typst"
|
"libimobiledevice"
|
||||||
] pkgs ++ [ pkgs.wineWowPackages.stableFull ];
|
"ifuse"
|
||||||
|
] pkgs ++ [ inputs.osu-nixos pkgs.wineWowPackages.stableFull ];
|
||||||
serverPkgs = lib.attrVals [
|
serverPkgs = lib.attrVals [
|
||||||
#"package"
|
#"package"
|
||||||
] pkgs;
|
] pkgs;
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
|
@ -55,40 +57,22 @@ in
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = (lib.attrVals [
|
environment.systemPackages = (lib.attrVals [
|
||||||
"black"
|
"btop"
|
||||||
"clang-tools"
|
|
||||||
"eza"
|
"eza"
|
||||||
"fd"
|
"fd"
|
||||||
"fzf"
|
|
||||||
"git"
|
"git"
|
||||||
"glib"
|
"glib"
|
||||||
"glsl_analyzer"
|
|
||||||
"gnumake"
|
"gnumake"
|
||||||
"gnupg"
|
"gnupg"
|
||||||
"hugo"
|
|
||||||
"mypy"
|
|
||||||
"neofetch"
|
|
||||||
"nixd"
|
|
||||||
"p7zip"
|
|
||||||
"pinentry"
|
"pinentry"
|
||||||
"ripgrep"
|
"neofetch"
|
||||||
"rust-analyzer"
|
|
||||||
"rustfmt"
|
|
||||||
"rustup"
|
|
||||||
"tinymist"
|
|
||||||
"unzip"
|
|
||||||
"verible"
|
|
||||||
"vhdl-ls"
|
|
||||||
"vtsls"
|
|
||||||
"wget"
|
"wget"
|
||||||
"zip"
|
|
||||||
"zoxide"
|
"zoxide"
|
||||||
] pkgs)
|
] pkgs)
|
||||||
++ (lib.optionals config.stitchyconf.artPkgs.enable artPkgs)
|
++ (lib.optionals config.stitchyconf.artPkgs.enable artPkgs)
|
||||||
++ (lib.optionals (config.stitchyconf.form == "pc") pcPkgs)
|
++ (lib.optionals (config.stitchyconf.form == "pc") pcPkgs)
|
||||||
++ (lib.optionals (config.stitchyconf.form == "handheld") handheldPkgs)
|
++ (lib.optionals (config.stitchyconf.form == "handheld") handheldPkgs)
|
||||||
++ (lib.optionals (config.stitchyconf.form == "server") serverPkgs)
|
++ (lib.optionals (config.stitchyconf.form == "server") serverPkgs);
|
||||||
++ [ pkgs.nodePackages.prettier ];
|
|
||||||
|
|
||||||
# To-do figure out how to section these off
|
# To-do figure out how to section these off
|
||||||
programs = {
|
programs = {
|
||||||
|
@ -101,35 +85,14 @@ in
|
||||||
customRC = builtins.readFile ../config/nvim/init.vim;
|
customRC = builtins.readFile ../config/nvim/init.vim;
|
||||||
packages.myVimPackage = with pkgs.vimPlugins; {
|
packages.myVimPackage = with pkgs.vimPlugins; {
|
||||||
start = [
|
start = [
|
||||||
conform-nvim
|
|
||||||
bufferline-nvim
|
|
||||||
cmp-nvim-lsp
|
|
||||||
cmp_luasnip
|
|
||||||
gitsigns-nvim
|
|
||||||
indent-blankline-nvim
|
|
||||||
lazy-nvim
|
|
||||||
luasnip
|
|
||||||
mini-nvim
|
|
||||||
neo-tree-nvim
|
|
||||||
nvim-cmp
|
|
||||||
nvim-lspconfig
|
nvim-lspconfig
|
||||||
(nvim-treesitter.withPlugins (
|
nvim-cmp
|
||||||
plugins: with plugins; [
|
cmp-nvim-lsp
|
||||||
glsl
|
luasnip
|
||||||
javascript
|
cmp_luasnip
|
||||||
markdown
|
|
||||||
]
|
|
||||||
))
|
|
||||||
nvim-web-devicons
|
|
||||||
render-markdown-nvim
|
|
||||||
spaceman-nvim
|
|
||||||
telescope-nvim
|
|
||||||
telescope-undo-nvim
|
|
||||||
toggleterm-nvim
|
|
||||||
tokyonight-nvim
|
tokyonight-nvim
|
||||||
typst-vim
|
|
||||||
vim-lsp-cxx-highlight
|
vim-lsp-cxx-highlight
|
||||||
which-key-nvim
|
typst-vim
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -156,25 +119,9 @@ in
|
||||||
fonts.packages = lib.attrVals [
|
fonts.packages = lib.attrVals [
|
||||||
"noto-fonts"
|
"noto-fonts"
|
||||||
"noto-fonts-emoji"
|
"noto-fonts-emoji"
|
||||||
"noto-fonts-cjk-sans"
|
|
||||||
"noto-fonts-cjk-serif"
|
|
||||||
"liberation_ttf"
|
"liberation_ttf"
|
||||||
|
"nerdfonts"
|
||||||
"ipafont"
|
"ipafont"
|
||||||
] pkgs ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
|
] pkgs;
|
||||||
|
|
||||||
fonts.fontconfig.defaultFonts = {
|
|
||||||
monospace = [
|
|
||||||
"Noto Sans Mono"
|
|
||||||
"IPAGothic"
|
|
||||||
];
|
|
||||||
sansSerif = [
|
|
||||||
"Noto Sans"
|
|
||||||
"IPAPGothic"
|
|
||||||
];
|
|
||||||
serif = [
|
|
||||||
"Noto Serif"
|
|
||||||
"IPAPMincho"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
config = {
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
firefox.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
desktopManager.plasma6.enable = true;
|
|
||||||
displayManager.sddm = {
|
|
||||||
enable = true;
|
|
||||||
wayland.enable = true;
|
|
||||||
};
|
|
||||||
pipewire = {
|
|
||||||
alsa.enable = true;
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.cirno = {
|
|
||||||
description = "user for guests/cirno people";
|
|
||||||
extraGroups = [ "audio" ];
|
|
||||||
home = "/home/cirno";
|
|
||||||
initialHashedPassword = "$6$2f8vjQbdKyEBqPRT$FrZBZfzpJGqNqLlCyb7CzRNm0wuZwfRI7Qj/dUQlbtLixyJK5Im9AJT7GXmP5StfhZxSbH/wW8nDGPQm98NXV0";
|
|
||||||
isNormalUser = true;
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ config,
|
|
||||||
nixosConfig,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
home-manager,
|
|
||||||
... }:
|
|
||||||
let
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
home.stateVersion = "24.05";
|
|
||||||
home.homeDirectory = "/home/cirno";
|
|
||||||
}
|
|
|
@ -6,5 +6,6 @@
|
||||||
mutableUsers = false;
|
mutableUsers = false;
|
||||||
users.root.initialHashedPassword = "!";
|
users.root.initialHashedPassword = "!";
|
||||||
};
|
};
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
... }:
|
|
||||||
let
|
|
||||||
|
|
||||||
in {
|
|
||||||
catppuccin = {
|
|
||||||
enable = true;
|
|
||||||
flavor = "macchiato";
|
|
||||||
fcitx5.enable = false;
|
|
||||||
gtk.enable = true;
|
|
||||||
kvantum.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
qt = {
|
|
||||||
enable = true;
|
|
||||||
platformTheme.name = "qtct";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
btop = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
theme_background = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
imv.enable = true;
|
|
||||||
lazygit.enable = true;
|
|
||||||
wlogout.enable = true;
|
|
||||||
zathura = {
|
|
||||||
enable = true;
|
|
||||||
options = {
|
|
||||||
recolor-keephue = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -6,7 +6,7 @@
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
home = "/home/nyadmin";
|
home = "/home/nyadmin";
|
||||||
description = "nyadministrator~";
|
description = "Administrator~";
|
||||||
extraGroups = [ "wheel" "kvm" "libvirt" "docker" ];
|
extraGroups = [ "wheel" "kvm" "libvirt" "docker" ];
|
||||||
initialHashedPassword = "$y$j9T$XguIcj/AVXsWW/MxSYAGh0$TivGAa0z8KNCli2mKTd24vtqimpadNzqMFwfbeh0p30";
|
initialHashedPassword = "$y$j9T$XguIcj/AVXsWW/MxSYAGh0$TivGAa0z8KNCli2mKTd24vtqimpadNzqMFwfbeh0p30";
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
|
|
|
@ -4,85 +4,52 @@
|
||||||
imports = [ ../default.nix ];
|
imports = [ ../default.nix ];
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||||
builtins.elem ( lib.getName pkg) [
|
builtins.elem ( lib.getName pkg) [
|
||||||
"cudatoolkit"
|
|
||||||
"nvidia-settings"
|
|
||||||
"nvidia-x11"
|
|
||||||
"osu-lazer"
|
"osu-lazer"
|
||||||
"quartus-prime-lite"
|
|
||||||
"quartus-prime-lite-unwrapped"
|
|
||||||
"steam"
|
"steam"
|
||||||
"steam-original"
|
"steam-original"
|
||||||
"steam-run"
|
"steam-run"
|
||||||
"steam-unwrapped"
|
"nvidia-x11"
|
||||||
|
"nvidia-settings"
|
||||||
|
"cudatoolkit"
|
||||||
];
|
];
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
|
||||||
"olm-3.2.16"
|
|
||||||
];
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
opentabletdriver.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
firefox.enable = true;
|
firefox.enable = true;
|
||||||
hyprland.enable = true;
|
hyprland.enable = config.stitchyconf.form == "pc";
|
||||||
kdeconnect.enable = true;
|
openvpn3.enable = config.stitchyconf.form == "pc";
|
||||||
steam = {
|
steam = {
|
||||||
enable = true;
|
enable = config.stitchyconf.form == "pc";
|
||||||
remotePlay.openFirewall = true;
|
remotePlay.openFirewall = true;
|
||||||
};
|
};
|
||||||
wireshark.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
security.pam.services.swaylock = {};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
avahi = {
|
avahi = {
|
||||||
enable = config.stitchyconf.form == "pc";
|
enable = false;
|
||||||
nssmdns4 = true;
|
nssmdns4 = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
blueman.enable = true;
|
blueman.enable = true;
|
||||||
gnome.gnome-keyring.enable = true;
|
gnome.gnome-keyring.enable = lib.mkIf( config.stitchyconf.form == "pc") true;
|
||||||
pipewire = {
|
pipewire = {
|
||||||
|
enable = lib.mkForce true;
|
||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
enable = true;
|
jack.enable = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
};
|
};
|
||||||
printing.enable = true;
|
printing.enable = false;
|
||||||
usbmuxd.enable = true;
|
usbmuxd.enable = false;
|
||||||
xserver.enable = true;
|
xserver.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
security.pam.services.swaylock = {};
|
||||||
|
|
||||||
users.users.stitchynyan = {
|
users.users.stitchynyan = {
|
||||||
description = "Personal user";
|
|
||||||
extraGroups = [ "audio" "dialout" "docker" "kvm" "libvirtd" "networkmanager" "plugdev" "wireshark" "wheel" ];
|
|
||||||
home = "/home/stitchynyan";
|
|
||||||
initialHashedPassword = "$y$j9T$rvySCWHYE4AO4A9J0Vf20.$x5hpBNsOWovQFtNfFUIt17OAH5MJFwFBGjxbaEIagJ3";
|
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
};
|
home = "/home/stitchynyan";
|
||||||
|
description = "Personal user";
|
||||||
i18n = {
|
extraGroups = [ "wheel" "networkmanager" "kvm" "libvirtd" "audio" ];
|
||||||
defaultLocale = "ja_JP.UTF-8";
|
initialHashedPassword = "$y$j9T$rvySCWHYE4AO4A9J0Vf20.$x5hpBNsOWovQFtNfFUIt17OAH5MJFwFBGjxbaEIagJ3";
|
||||||
inputMethod = {
|
|
||||||
enable = true;
|
|
||||||
type = "fcitx5";
|
|
||||||
fcitx5 = {
|
|
||||||
waylandFrontend = true;
|
|
||||||
settings.addons = {
|
|
||||||
classicui.globalSection = {
|
|
||||||
Theme = "FluentLight";
|
|
||||||
DarkTheme = "FluentDark";
|
|
||||||
UseDarkTheme = "True";
|
|
||||||
UseAccentColor = "True";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
addons = with pkgs; [
|
|
||||||
fcitx5-mozc
|
|
||||||
fcitx5-fluent
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,38 +11,33 @@ let
|
||||||
] pkgs;
|
] pkgs;
|
||||||
pcPkgs = lib.attrVals [
|
pcPkgs = lib.attrVals [
|
||||||
"activitywatch"
|
"activitywatch"
|
||||||
"anki"
|
|
||||||
"awatcher"
|
|
||||||
"dunst"
|
"dunst"
|
||||||
"foliate"
|
|
||||||
"foot"
|
"foot"
|
||||||
"grim"
|
"grim"
|
||||||
"hunspell"
|
"imv"
|
||||||
"hyprpaper"
|
|
||||||
"isync"
|
"isync"
|
||||||
"kitty"
|
"kitty"
|
||||||
|
"hunspell"
|
||||||
|
"hyprpaper"
|
||||||
"libreoffice"
|
"libreoffice"
|
||||||
"librewolf"
|
"librewolf"
|
||||||
"lynx"
|
"lynx"
|
||||||
"mpv"
|
"mpv"
|
||||||
"msmtp"
|
"msmtp"
|
||||||
|
"mupdf"
|
||||||
"neomutt"
|
"neomutt"
|
||||||
"networkmanagerapplet"
|
"networkmanagerapplet"
|
||||||
"nheko"
|
"nheko"
|
||||||
"notmuch"
|
"notmuch"
|
||||||
"okular"
|
"okular"
|
||||||
"osu-lazer"
|
|
||||||
"pass"
|
|
||||||
"pavucontrol"
|
"pavucontrol"
|
||||||
|
"pass"
|
||||||
"playerctl"
|
"playerctl"
|
||||||
"prismlauncher"
|
"prismlauncher"
|
||||||
"pstree"
|
"qt5ct"
|
||||||
"qbittorrent"
|
|
||||||
"qt6ct"
|
"qt6ct"
|
||||||
"slurp"
|
"slurp"
|
||||||
"swayidle"
|
|
||||||
"swaylock-effects"
|
"swaylock-effects"
|
||||||
"tofi"
|
|
||||||
"wofi"
|
"wofi"
|
||||||
] pkgs ++ [ pkgs.hunspellDicts.en_US ];
|
] pkgs ++ [ pkgs.hunspellDicts.en_US ];
|
||||||
in
|
in
|
||||||
|
@ -54,12 +49,13 @@ in
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
cider
|
cider
|
||||||
ngspice
|
ngspice
|
||||||
|
hugo
|
||||||
kicad
|
kicad
|
||||||
#steamvr?
|
#steamvr?
|
||||||
procps
|
procps
|
||||||
usbutils
|
usbutils
|
||||||
yt-dlp
|
(python311.withPackages (lib.attrVals ["sympy" "matplotlib"]))
|
||||||
(python3.withPackages (lib.attrVals [ "matplotlib" "pyflakes" "python-lsp-server" "sympy"]))
|
(octaveFull.withPackages (lib.attrVals ["symbolic"]))
|
||||||
]
|
]
|
||||||
++ (lib.optionals (nixosConfig.stitchyconf.form == "handheld") handheldPkgs)
|
++ (lib.optionals (nixosConfig.stitchyconf.form == "handheld") handheldPkgs)
|
||||||
++ (lib.optionals (nixosConfig.stitchyconf.form == "pc") pcPkgs);
|
++ (lib.optionals (nixosConfig.stitchyconf.form == "pc") pcPkgs);
|
||||||
|
@ -74,13 +70,7 @@ in
|
||||||
# To-Do Later
|
# To-Do Later
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
FOO = "BAR";
|
FOO = "BAR";
|
||||||
};
|
|
||||||
|
|
||||||
gtk.enable = true;
|
|
||||||
dconf.settings = {
|
|
||||||
"org/gnome/desktop/interface" = {
|
|
||||||
color-scheme = "prefer-dark";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file = {
|
home.file = {
|
||||||
|
@ -96,21 +86,10 @@ in
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/eww";
|
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/eww";
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
"foot" = {
|
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/foot";
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
"hypr" = {
|
"hypr" = {
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/hypr";
|
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/hypr";
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
"mutt" = {
|
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/mutt";
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
"mutt_oauth2.py" = {
|
|
||||||
source = "${pkgs.neomutt}/share/neomutt/oauth2/mutt_oauth2.py";
|
|
||||||
};
|
|
||||||
"swaylock" = {
|
"swaylock" = {
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/swaylock";
|
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/swaylock";
|
||||||
recursive = true;
|
recursive = true;
|
||||||
|
@ -121,7 +100,7 @@ in
|
||||||
mailsync = {
|
mailsync = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Syncs email";
|
Description = "Syncs email";
|
||||||
After = [ "network-online.target" ];
|
After = [ "network-online.target" ];
|
||||||
};
|
};
|
||||||
Service = {
|
Service = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
|
@ -130,7 +109,7 @@ in
|
||||||
"DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus"
|
"DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus"
|
||||||
"DISPLAY=:0"
|
"DISPLAY=:0"
|
||||||
"MBSYNCRC=/home/stitchynyan/.config/mbsync/config"
|
"MBSYNCRC=/home/stitchynyan/.config/mbsync/config"
|
||||||
"PATH=$PATH:${lib.makeBinPath (lib.attrVals [ "busybox" "cyrus-sasl-xoauth2" "gnupg" "isync" "libnotify" "notmuch" "pass" "perl" "python3" ] pkgs)}"
|
"PATH=$PATH:${lib.makeBinPath (lib.attrVals [ "busybox" "cyrus-sasl-xoauth2" "gnupg" "isync" "notify" "notmuch" "pass" "perl" "python3" ] pkgs)}"
|
||||||
"SASL_PATH=/run/current-system/sw/lib/sasl2"
|
"SASL_PATH=/run/current-system/sw/lib/sasl2"
|
||||||
"WAYLAND_DISPLAY=wayland-1"
|
"WAYLAND_DISPLAY=wayland-1"
|
||||||
];
|
];
|
||||||
|
@ -139,40 +118,22 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.gpg = {
|
|
||||||
homedir = "${config.xdg.dataHome}/gnupg";
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
enableScDaemon = false;
|
|
||||||
enableSshSupport = true;
|
|
||||||
defaultCacheTtl = 34560000;
|
|
||||||
maxCacheTtl = 34560000;
|
|
||||||
extraConfig = ''
|
|
||||||
allow-preset-passphrase
|
|
||||||
pinentry-program /run/current-system/sw/bin/pinentry
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.timers = {
|
systemd.user.timers = {
|
||||||
mailsync = {
|
mailsync = {
|
||||||
Unit.Description = "Syncs email";
|
Unit.Description = "Syncs email";
|
||||||
Timer = {
|
Timer = {
|
||||||
OnBootSec = "1min";
|
OnBootSec = "1min";
|
||||||
OnUnitActiveSec = "10min";
|
OnUnitActiveSec = "10min";
|
||||||
};
|
};
|
||||||
Install.WantedBy = [ "timers.target" ];
|
Install.WantedBy = [ "timers.target" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
name = "phinger-cursors-dark";
|
name = "phinger-cursors";
|
||||||
package = pkgs.phinger-cursors;
|
package = pkgs.phinger-cursors;
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
size = 24;
|
size = 64;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Read the Docs before change
|
# Read the Docs before change
|
||||||
|
|
Loading…
Reference in a new issue