Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
91161651b0 |
BIN
dotfiles/Passwords.kdbx
Normal file
86
dotfiles/helix/config.toml
Normal file
@ -0,0 +1,86 @@
|
||||
# Theme
|
||||
theme = "catppuccin_frappe"
|
||||
|
||||
[keys.normal]
|
||||
|
||||
# Navigation
|
||||
n = "move_char_left" # Maps the 'a' key to the move_char_left command
|
||||
i = "move_visual_line_down"
|
||||
e = "move_visual_line_up"
|
||||
o = "move_char_right"
|
||||
|
||||
C-i = "half_page_down"
|
||||
C-e = "half_page_up"
|
||||
|
||||
# Modes
|
||||
h = "insert_mode"
|
||||
l = "open_below"
|
||||
L = "open_above"
|
||||
|
||||
# Search
|
||||
k = "search_next"
|
||||
K = "search_prev"
|
||||
|
||||
|
||||
C-s = ":w" # Maps Ctrl-s to the typable command :w which is an alias for :write (save file)
|
||||
C-o = ":open ~/.config/helix/config.toml" # Maps Ctrl-o to opening of the helix config file
|
||||
C-l = ":open ~/.config/helix/languages.toml"
|
||||
|
||||
[keys.normal.g]
|
||||
P = "goto_previous_buffer"
|
||||
N = "goto_next_buffer"
|
||||
n = "goto_line_start"
|
||||
o = "goto_line_end"
|
||||
|
||||
[keys.select]
|
||||
n = "move_char_left"
|
||||
i = "move_visual_line_down"
|
||||
e = "move_visual_line_up"
|
||||
o = "move_char_right"
|
||||
|
||||
[editor]
|
||||
bufferline = "multiple"
|
||||
auto-save = true
|
||||
line-number = "relative"
|
||||
cursorline = true
|
||||
color-modes = true
|
||||
text-width = 120
|
||||
auto-format = true
|
||||
|
||||
[editor.statusline]
|
||||
left = ["mode", "spinner", "version-control", "file-name"]
|
||||
mode.normal = "Normal"
|
||||
mode.insert = "Insert"
|
||||
mode.select = "Select"
|
||||
|
||||
[editor.indent-guides]
|
||||
render = true
|
||||
|
||||
[editor.lsp]
|
||||
display-messages = true
|
||||
|
||||
[editor.cursor-shape]
|
||||
insert = "bar"
|
||||
normal = "block"
|
||||
select = "underline"
|
||||
|
||||
[editor.file-picker]
|
||||
hidden = false
|
||||
|
||||
[editor.whitespace.render]
|
||||
space = "all"
|
||||
tab = "all"
|
||||
tabpad = "all"
|
||||
newline = "none"
|
||||
nbsp = "none"
|
||||
|
||||
[editor.whitespace.characters]
|
||||
space = "·"
|
||||
tab = "⇀"
|
||||
tabpad = " "
|
||||
|
||||
|
||||
#w = "move_line_up" # Maps the 'w' key move_line_up
|
||||
#"C-S-esc" = "extend_line" # Maps Ctrl-Shift-Escape to extend_line
|
||||
#g = { a = "code_action" } # Maps `ga` to show possible code actions
|
||||
#"ret" = ["open_below", "normal_mode"] # Maps the enter key to open_below then re-enter normal mode
|
@ -259,7 +259,7 @@ command = "lua-language-server"
|
||||
# diagnostics.enable = true
|
||||
|
||||
[language.markdown]
|
||||
filetypes = ["md", "markdown"]
|
||||
filetype = ["md", "markdown"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "vscode-markdown-language-server"
|
||||
args = ["--stdio"]
|
@ -28,9 +28,9 @@ set-option global startup_info_version 30000000
|
||||
set-option global tabstop 4
|
||||
set-option global indentwidth 4
|
||||
set-option global scrolloff 5,3
|
||||
declare-option str kakrc_path "~/system/nate/dotfiles/kak/kakrc"
|
||||
declare-option str sway_conf_path "~/system/nate/dotfiles/sway/config.d/default"
|
||||
declare-option str shell_config "~/system/nate/modules/home-manager/home.nix"
|
||||
declare-option str kakrc_path "~/.config/kak/kakrc"
|
||||
declare-option str sway_conf_path "~/.config/sway/config.d/default"
|
||||
declare-option str shell_config "~/.zshrc"
|
||||
|
||||
# plug "catppuccin/kakoune" theme config %{
|
||||
# colorscheme catppuccin_macchiato
|
||||
@ -56,20 +56,6 @@ hook global FocusOut .* %{ try %{
|
||||
hook global BufWritePost .* %{ evaluate-commands 'git update-diff' }
|
||||
hook global BufReload .* %{ evaluate-commands 'git update-diff' }
|
||||
|
||||
# Color Render in Echo Area
|
||||
hook global WinSetOption filetype=kak %{ hook global NormalIdle .* %{
|
||||
evaluate-commands -save-regs 'a' %{ try %{
|
||||
execute-keys -draft <a-i>w"ay
|
||||
evaluate-commands %sh{ (
|
||||
color="${kak_reg_a}"
|
||||
inverted_color=$(echo "${color}" | perl -pe 'tr/0123456789abcdefABCDEF/fedcba9876543210543210/')
|
||||
printf "%s\n" "evaluate-commands -client $kak_client %{ try %{
|
||||
echo -markup %{{rgb:${inverted_color},rgb:${color}+b} #${color} }
|
||||
}}" | kak -p $kak_session
|
||||
) >/dev/null 2>&1 </dev/null & }
|
||||
}}
|
||||
}}
|
||||
|
||||
# Add default,red and bold style to these regex matches
|
||||
add-highlighter global/ regex \b(TODO|FIXME|XXX|NOTE)\b 0:default,red+rb
|
||||
|
||||
@ -105,7 +91,6 @@ map global normal <c-S> <a-S> -docstring 'select first and last character of ea
|
||||
map global normal '<c-;>' '<a-;>' -docstring 'flip direction of each selection'
|
||||
map global normal <c-:> <a-:> -docstring 'ensure selections are in forward direction (cursor then anchor)'
|
||||
map global normal <c-,> <a-,> -docstring 'clear the main selection'
|
||||
map global normal <c-.> <a-.> -docstring 'Repeat last object or f/t selection'
|
||||
|
||||
# Scrolling remap
|
||||
map global normal <c-e> <pageup> -docstring 'Scroll screen up'
|
||||
@ -259,17 +244,9 @@ plug "alexherbo2/auto-pairs.kak" %{
|
||||
enable-auto-pairs
|
||||
}
|
||||
|
||||
|
||||
plug "https://github.com/h-youhei/kakoune-surround"
|
||||
|
||||
map global normal <c-m> ':surround<ret>'
|
||||
|
||||
# Custom scripts
|
||||
|
||||
# evaluate-commands %sh{
|
||||
# for file in ~/.config/kak/rc/*.kak; do
|
||||
# printf "source %s\n" $file
|
||||
# done
|
||||
# }
|
||||
|
||||
# source "~/.config/kak/rc/"
|
||||
source "~/.config/kak/rc/fzf_git.kak"
|
@ -1,19 +1,19 @@
|
||||
font=Overpass Nerd Font 20
|
||||
font=UbuntuMono 12.5
|
||||
|
||||
background-color=#24273a
|
||||
text-color=#cad3f5
|
||||
width=630
|
||||
height=400
|
||||
background-color=#404552
|
||||
text-color=#e5e9f0
|
||||
width=315
|
||||
height=200
|
||||
padding=10
|
||||
margin=20
|
||||
margin=10
|
||||
progress-color=over #eceff480
|
||||
icon-path=/usr/share/icons/Arc-X-D
|
||||
max-icon-size=140
|
||||
max-icon-size=70
|
||||
layer=overlay
|
||||
|
||||
border-size=5
|
||||
border-radius=8
|
||||
border-color=#b7bdf8
|
||||
border-radius=0
|
||||
border-color=#5294e2
|
||||
|
||||
default-timeout=5000
|
||||
|
@ -14,14 +14,13 @@ for_window [class="Telegram"] focus
|
||||
|
||||
for_window [app_id="xed"] focus
|
||||
|
||||
# default keepass main window to scratch
|
||||
for_window [app_id="org.keepassxc.KeePassXC"] $floating_window
|
||||
for_window [app_id="org.keepassxc.KeePassXC" title="KeePassXC"] move to scratchpad #, scratchpad show # default to show
|
||||
|
||||
# set floating (nontiling) for apps needing it:
|
||||
# set floating (nontiling)for apps needing it:
|
||||
for_window [class="Yad" instance="yad"] floating enable
|
||||
for_window [app_id="yad"] floating enable
|
||||
for_window [app_id="blueman-manager"] floating enable, resize set width 40 ppt height 30 ppt
|
||||
for_window [app_id="mobile"] floating enable, resize set width 200 ppt height 400 ppt
|
||||
|
||||
|
||||
# set floating (nontiling) for special apps:
|
||||
for_window [class="Xsane" instance="xsane"] floating enable
|
||||
@ -30,7 +29,6 @@ for_window [class="qt5ct" instance="qt5ct"] floating enable, resize set width 60
|
||||
for_window [class="Bluetooth-sendto" instance="bluetooth-sendto"] floating enable
|
||||
for_window [app_id="pamac-manager"] floating enable, resize set width 80 ppt height 70 ppt
|
||||
for_window [class="Lxappearance"] floating enable, resize set width 60 ppt height 50 ppt
|
||||
for_window [class="steam" title="^((?!Steam$).)*"] floating enable
|
||||
|
||||
# set floating for window roles
|
||||
for_window [window_role="pop-up"] floating enable
|
@ -1,5 +1,5 @@
|
||||
# Auth with polkit-gnome:
|
||||
exec lxqt-policykit-agent
|
||||
exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
|
||||
# Desktop notifications
|
||||
exec mako
|
@ -145,8 +145,8 @@ exec swayidle -w\
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# bindsym $mod+g exec ~/.config/sway/scripts/scale.sh inc
|
||||
# bindsym $mod+m exec ~/.config/sway/scripts/scale.sh dec
|
||||
bindsym $mod+g exec ~/.config/sway/scripts/scale.sh inc
|
||||
bindsym $mod+m exec ~/.config/sway/scripts/scale.sh dec
|
||||
|
||||
#
|
||||
# Scratchpad:
|
||||
@ -225,7 +225,7 @@ bindsym $mod+r mode "resize"
|
||||
#
|
||||
# Screenshots
|
||||
#
|
||||
bindsym $mod+Shift+p exec ~/.config/sway/scripts/screenshot.sh clipboard
|
||||
bindsym $mod+Shift+p exec /usr/share/sway/scripts/grimshot --notify save output
|
||||
bindsym $mod+p exec ~/.config/sway/scripts/screenshot.sh
|
||||
#
|
||||
# Keybindings List
|
@ -9,5 +9,4 @@
|
||||
# Wacom Tablet - Example
|
||||
# input "1386:884:Wacom_Intuos_S_Pad" map_to_output HDMI-A-1
|
||||
# input "1386:884:Wacom_Intuos_S_Pen" map_to_output HDMI-A-1
|
||||
output DP-3 resolution 3840x2160@240.084Hz position 0,0
|
||||
output * adaptive_sync off
|
||||
output * adaptive_sync on
|
@ -41,8 +41,8 @@ font pango:Overpass Nerd Font 12
|
||||
smart_borders on
|
||||
|
||||
# Set wallpaper:
|
||||
exec_always swaybg -i /home/nate/.config/sway/wallpapers/nix-black-4k.png
|
||||
# exec_always /home/nate/.config/sway/scripts/background.sh
|
||||
#exec_always swaybg -i /home/nate/.config/sway/wallpapers/ign-0000.png
|
||||
exec_always /home/nate/.config/sway/scripts/background.sh
|
||||
|
||||
# Title format for windows
|
||||
for_window [shell="xdg_shell"] title_format "%title (%app_id)"
|
||||
@ -71,28 +71,31 @@ bar {
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
set $opacity 0.8
|
||||
set $opacity 0.88
|
||||
set $floating_window floating enable, resize set width 1030 height 710, opacity 1.0
|
||||
|
||||
for_window {
|
||||
[class=".*"] opacity 1.0
|
||||
[app_id=".*"] opacity 1.0
|
||||
[app_id="foot"] opacity $opacity
|
||||
[app_id="thunar"] opacity $opacity
|
||||
[class=".*"] opacity $opacity
|
||||
[app_id=".*"] opacity $opacity
|
||||
[app_id="firefox"] opacity 1.0
|
||||
[app_id="corectrl"] opacity 1.0
|
||||
[app_id="org.keepassxc.KeePassXC"] $floating_window, move to scratchpad, sratchpad show, opacity 1.0
|
||||
[app_id="pavucontrol"] opacity 1.0
|
||||
[app_id="oversteer"] opacity 1.0
|
||||
|
||||
# Steam
|
||||
[class="steam_app.*"] inhibit_idle fullscreen; floating enable; border none opacity 1.0
|
||||
[class="steam"] opacity 1.0
|
||||
[class="leagueclientux.exe"] opacity 1.0
|
||||
[class="obsidian"] opacity 1.0
|
||||
|
||||
[title="(?:Open|Save|Save New|Open a) (?:File|Folder|As|Scene As)"] $floating_window
|
||||
# Godot windows
|
||||
[title="(?:Godot)"] opacity 1.0
|
||||
[title="(?:Create New|Select Frames|project.godot|node)"] $floating_window
|
||||
[title="(?:Create Folder|Node Configuration|Warning|Please Confirm)"] $floating_window, resize set height 200
|
||||
|
||||
# Aseprite
|
||||
[title="(?:Aseprite)"] opacity 1.0
|
||||
|
||||
# Floating windows
|
||||
[title="(?:Open|Save|Save New|Open a) (?:File|Folder|As|Scene As)"] $floating_window
|
||||
[window_role="pop-up"] $floating_window
|
||||
[window_role="bubble"] $floating_window
|
||||
[window_role="task_dialog"] $floating_window
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
PID_FILE="background.pid"
|
||||
WP_LOC="/home/nate/.config/sway/wallpapers"
|
||||
PREV_WP=""
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/sh
|
||||
|
||||
# usage: import-gsettings
|
||||
config="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini"
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
|
||||
SCALE_FILE="scale.txt"
|
||||
DIRNAME="/tmp/$(ls /tmp | grep scale.sh | head -n 1)"
|
18
dotfiles/sway/scripts/screenshot.sh
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
entries="Active Screen Output Area Window"
|
||||
|
||||
selected=$(printf '%s\n' $entries | wofi --style=$HOME/.config/wofi/style.widgets.css --conf=$HOME/.config/wofi/config.screenshot | awk '{print tolower($1)}')
|
||||
|
||||
case $selected in
|
||||
active)
|
||||
/usr/share/sway/scripts/grimshot --notify save active;;
|
||||
screen)
|
||||
/usr/share/sway/scripts/grimshot --notify save screen;;
|
||||
output)
|
||||
/usr/share/sway/scripts/grimshot --notify save output;;
|
||||
area)
|
||||
/usr/share/sway/scripts/grimshot --notify save area;;
|
||||
window)
|
||||
/usr/share/sway/scripts/grimshot --notify save window;;
|
||||
esac
|
15
dotfiles/sway/scripts/weather.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
LOC="$1"
|
||||
# HTML encode string as %20
|
||||
LOCATION=$(sed -e "s/ /%20/g" <<<"$LOC")
|
||||
content=$(curl -sS "https://thisdavej.azurewebsites.net/api/weather/current?loc=NewYork°=C")
|
||||
ICON=$(curl -s 'https://wttr.in/?format=1' | sed 's/[+0-9a-cA-Z°-]//g' )
|
||||
# echo $ICON
|
||||
TEMP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)"' | sed 's/"//g')
|
||||
TOOLTIP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)\n\(.skytext)"' | sed 's/"//g')
|
||||
CLASS=$(echo $content | jq .skytext)
|
||||
echo '{"text": "'$TEMP'", "tooltip": "'$ICON $TOOLTIP $LOC'", "class": '$CLASS' }'
|
||||
|
||||
|
||||
|
Before ![]() (image error) Size: 221 KiB After ![]() (image error) Size: 221 KiB ![]() ![]() |
Before ![]() (image error) Size: 150 KiB After ![]() (image error) Size: 150 KiB ![]() ![]() |
Before ![]() (image error) Size: 218 KiB After ![]() (image error) Size: 218 KiB ![]() ![]() |
Before ![]() (image error) Size: 772 KiB After ![]() (image error) Size: 772 KiB ![]() ![]() |
Before ![]() (image error) Size: 1.1 MiB After ![]() (image error) Size: 1.1 MiB ![]() ![]() |
Before ![]() (image error) Size: 344 KiB After ![]() (image error) Size: 344 KiB ![]() ![]() |
Before ![]() (image error) Size: 591 KiB After ![]() (image error) Size: 591 KiB ![]() ![]() |
Before ![]() (image error) Size: 138 KiB After ![]() (image error) Size: 138 KiB ![]() ![]() |
@ -2,13 +2,13 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"margin-top": 3,
|
||||
"margin-top": 8,
|
||||
"margin-left": 10,
|
||||
"margin-right": 10,
|
||||
"margin-bottom": 3,
|
||||
"margin-bottom": 8,
|
||||
|
||||
// If height property would be not present, it'd be calculated dynamically
|
||||
"height": 60,
|
||||
"height": 30,
|
||||
|
||||
"modules-left": [
|
||||
"custom/launcher",
|
||||
@ -17,13 +17,6 @@
|
||||
],
|
||||
|
||||
"modules-center": [
|
||||
"custom/signal",
|
||||
"custom/steam",
|
||||
"custom/spotify",
|
||||
"custom/firefox",
|
||||
"custom/slack",
|
||||
"custom/files",
|
||||
"custom/pomo",
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
@ -32,11 +25,12 @@
|
||||
"memory",
|
||||
"cpu",
|
||||
"pulseaudio",
|
||||
"custom/spotify",
|
||||
"custom/keyboard-layout",
|
||||
"battery",
|
||||
//"custom/PBPbattery",
|
||||
// "backlight#icon",
|
||||
// "backlight#value",
|
||||
"backlight#icon",
|
||||
"backlight#value",
|
||||
"clock",
|
||||
"tray",
|
||||
//"custom/weather",
|
||||
@ -86,7 +80,7 @@
|
||||
"warning": 70,
|
||||
"critical": 90,
|
||||
},
|
||||
"on-click": "foot -e 'htop'",
|
||||
"on-click": "xfce4-terminal -e 'htop'",
|
||||
},
|
||||
|
||||
"custom/keyboard-layout": {
|
||||
@ -103,7 +97,7 @@
|
||||
"memory": {
|
||||
"interval": 5,
|
||||
"format": " {}%", // Icon: memory
|
||||
"on-click": "foot -e 'htop'",
|
||||
"on-click": "xfce4-terminal -e 'htop'",
|
||||
"states": {
|
||||
"warning": 70,
|
||||
"critical": 90
|
||||
@ -116,7 +110,7 @@
|
||||
"format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet
|
||||
"format-disconnected": "⚠ Disconnected",
|
||||
"tooltip-format": "{ifname}: {ipaddr}",
|
||||
"on-click": "foot -e 'nmtui'",
|
||||
"on-click": "xfce4-terminal -e 'nmtui'",
|
||||
},
|
||||
"network#vpn": {
|
||||
"interface": "tun0",
|
||||
@ -153,18 +147,18 @@
|
||||
"scroll-step": 1, // %, can be a float
|
||||
"format": "{volume}% {icon}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": "婢 {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"headphone": "",
|
||||
"hands-free": "וֹ",
|
||||
"headset": " ",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": [""]
|
||||
"default": [""]
|
||||
},
|
||||
"on-click": "pavucontrol",
|
||||
"on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +2%",
|
||||
@ -179,12 +173,6 @@
|
||||
"interval": 600,
|
||||
},
|
||||
|
||||
// "custom/temp": {
|
||||
// "exec": "notify-send \"temp thing\"",
|
||||
// "interval": "once",
|
||||
// "signal": 8,
|
||||
// },
|
||||
|
||||
"tray": {
|
||||
"icon-size": 18,
|
||||
"spacing":10,
|
||||
@ -203,54 +191,28 @@
|
||||
"on-scroll-up": "brightnessctl -c backlight set +1%"
|
||||
},
|
||||
|
||||
"custom/signal": {
|
||||
"format": " ",
|
||||
"on-click": "exec signal",
|
||||
"tooltip": false,
|
||||
},
|
||||
|
||||
"custom/steam": {
|
||||
"format": " ",
|
||||
"on-click": "exec steam",
|
||||
"tooltip": false,
|
||||
"custom/firefox": {
|
||||
"format": " ",
|
||||
"on-click": "exec firefox",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/spotify": {
|
||||
"format": " ",
|
||||
"on-click": "foot -e 'ncspot'",
|
||||
"tooltip": false,
|
||||
"format": " ",
|
||||
"on-click": "xfce4-terminal -e 'ncspot'",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/firefox": {
|
||||
"format": " ",
|
||||
"on-click": "exec firefox",
|
||||
"tooltip": false,
|
||||
"custom/terminal": {
|
||||
"format": " ",
|
||||
"on-click": "exec xfce4-terminal",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
|
||||
"custom/slack": {
|
||||
"format": " ",
|
||||
"on-click": "slack",
|
||||
"tooltip": false,
|
||||
"exec if": "pgrep slack"
|
||||
},
|
||||
|
||||
|
||||
"custom/files": {
|
||||
"format": " ",
|
||||
"custom/files": {
|
||||
"format": " ",
|
||||
"on-click": "exec thunar",
|
||||
"tooltip": false,
|
||||
},
|
||||
|
||||
|
||||
"custom/pomo": {
|
||||
"format": " {} ",
|
||||
"exec": "/home/nate/source/pomozoro/zig-out/bin/pomozoro",
|
||||
"return-type": "json",
|
||||
"on-click": "echo 's' > ~/.local/share/pomozoro/pomopipe",
|
||||
"on-click-right": "echo 'p' > ~/.local/share/pomozoro/pomopipe",
|
||||
"on-click-middle": "echo 'r' > ~/.local/share/pomozoro/pomopipe",
|
||||
// "signal": 8,
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/launcher": {
|
21
dotfiles/waybar/scripts/PBPbattery.sh
Executable file
@ -0,0 +1,21 @@
|
||||
|
||||
#!/bin/bash
|
||||
#simple Shellscript for waybar/i3blocks/polybar on Pinebook pro
|
||||
#05012020 geri123@gmx.net Gerhard S.
|
||||
|
||||
PERCENT=$(cat /sys/class/power_supply/cw2015-battery/capacity)
|
||||
STATUS=$(cat /sys/class/power_supply/cw2015-battery/status)
|
||||
case $((
|
||||
$PERCENT >= 0 && $PERCENT <= 20 ? 1 :
|
||||
$PERCENT > 20 && $PERCENT <= 40 ? 2 :
|
||||
$PERCENT > 40 && $PERCENT <= 60 ? 3 :
|
||||
$PERCENT > 60 && $PERCENT <= 80 ? 4 : 5)) in
|
||||
#
|
||||
(1) echo $STATUS:"":$PERCENT%;;
|
||||
(2) echo $STATUS:"":$PERCENT%;;
|
||||
(3) echo $STATUS:"":$PERCENT%;;
|
||||
(4) echo $STATUS:"":$PERCENT%;;
|
||||
(5) echo $STATUS:"":$PERCENT%;;
|
||||
esac
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
|
||||
entries="Default Colemak"
|
||||
|
2
dotfiles/waybar/scripts/keyhint.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
yad --title="EndeavourOS Sway-WM keybindings:" --no-buttons --geometry=400x345-15-400 --list --column=key: --column=description: --column=command: "ESC" "close this app" "" "=" "modkey" "(set mod Mod4)" "+enter" "Terminal" "(xfce4-terminal)" "+d" "Application Menu" "(wofi)" "+p" "Activities" "(wofi)" "+o" "" "Open Broswer" "+n" "" "Open Files" "+q" "close focused app" "(kill)" "[Shift]+Print-key" "screenshot" "(grim)" "+Shift+e" "power-menu" "(wofi)" "+t" "open keybinding helper" "full list"
|
13
dotfiles/waybar/scripts/weather.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
LOC="$1"
|
||||
# HTML encode string as %20
|
||||
LOCATION=$(sed -e "s/ /%20/g" <<<"$LOC")
|
||||
content=$(curl -sS "https://thisdavej.azurewebsites.net/api/weather/current?loc=$LOCATION°=C")
|
||||
ICON=$(curl -s 'https://wttr.in/?format=1' | sed 's/[+0-9a-cA-Z°-]//g' )
|
||||
# echo $ICON
|
||||
TEMP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)"' | sed 's/"//g')
|
||||
TOOLTIP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)\n\(.skytext)"' | sed 's/"//g')
|
||||
CLASS=$(echo $content | jq .skytext)
|
||||
echo '{"text": "'$TEMP'", "tooltip": "'$ICON $TOOLTIP $LOC'", "class": '$CLASS' }'
|
||||
|
219
dotfiles/waybar/style.css
Normal file
@ -0,0 +1,219 @@
|
||||
/* =============================================================================
|
||||
*
|
||||
* Waybar configuration
|
||||
*
|
||||
* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
|
||||
*
|
||||
* =========================================================================== */
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Keyframes
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
Nordic Color Scheme
|
||||
*/
|
||||
@define-color nord2 #434c5e;
|
||||
@define-color nord3 #4c566a;
|
||||
@define-color nord4 #d8dee9;
|
||||
@define-color nord8 #88c0d0;
|
||||
@define-color nord9 #81a1c1;
|
||||
@define-color nord_cyan #8fbcbb;
|
||||
@define-color nord_orange #d08770;
|
||||
@define-color nord_red #bf616a;
|
||||
@define-color nord_green #a3be8c;
|
||||
@define-color nord_yellow #ebcb8b;
|
||||
|
||||
@keyframes blink-warning {
|
||||
70% {
|
||||
color: white;
|
||||
}
|
||||
|
||||
to {
|
||||
color: white;
|
||||
background-color: @nord_orange;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes blink-critical {
|
||||
70% {
|
||||
color: white;
|
||||
}
|
||||
|
||||
to {
|
||||
color: white;
|
||||
background-color: @nord_red;
|
||||
}
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Base styles
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/* Reset all styles */
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
margin: 1px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* The whole bar */
|
||||
#waybar {
|
||||
background: transparent;
|
||||
color: @nord4;
|
||||
background-color: @nord3;
|
||||
font-family: Overpass Nerd Font;
|
||||
font-size: 16px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
/* Every modules */
|
||||
#battery,
|
||||
#clock,
|
||||
#backlight,
|
||||
#cpu,
|
||||
#custom-keyboard-layout,
|
||||
#memory,
|
||||
#mode,
|
||||
#custom-weather,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#temperature,
|
||||
#tray,
|
||||
#idle_inhibitor,
|
||||
#custom-PBPbattery {
|
||||
padding:0.5rem 0.6rem;
|
||||
margin: 1px 0px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Modules styles
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
#battery {
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#battery.warning {
|
||||
color: @nord_orange;
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: @nord_red;
|
||||
}
|
||||
|
||||
#battery.warning.discharging {
|
||||
animation-name: blink-warning;
|
||||
animation-duration: 3s;
|
||||
}
|
||||
|
||||
#battery.critical.discharging {
|
||||
animation-name: blink-critical;
|
||||
animation-duration: 2s;
|
||||
}
|
||||
|
||||
#cpu.warning {
|
||||
color: @nord_orange;
|
||||
}
|
||||
|
||||
#cpu.critical {
|
||||
color: @nord_red;
|
||||
}
|
||||
|
||||
#memory {
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#memory.warning {
|
||||
color: @nord_orange;
|
||||
}
|
||||
|
||||
#memory.critical {
|
||||
color: @nord_red;
|
||||
animation-name: blink-critical;
|
||||
animation-duration: 2s;
|
||||
padding-left:5px;
|
||||
padding-right:5px;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background: @nord8;
|
||||
border-bottom: 3px transparent;
|
||||
color:white;
|
||||
margin-left: 5px;
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
color: @nord_orange;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
padding-top:6px;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
|
||||
color: @nord_cyan;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
color: @nord_red;
|
||||
}
|
||||
|
||||
#window {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
font-size:13px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
border-bottom: 3px solid transparent;
|
||||
margin-bottom: 0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
#custom-launcher {
|
||||
color: @nord9;
|
||||
}
|
||||
|
||||
#custom-spotify {
|
||||
color: @nord_green;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
border-bottom: 3px solid @nord_green;
|
||||
margin-bottom: 1px;
|
||||
padding-left:0;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
border-color: @nord2;
|
||||
color: @nord_yellow;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
margin-left:15px;
|
||||
margin-right:15px;
|
||||
font-size:15px;
|
||||
color: @nord_orange;
|
||||
}
|
||||
|
||||
#custom-launcher {
|
||||
font-size:15px;
|
||||
margin-left:15px;
|
||||
margin-right:10px;
|
||||
}
|
||||
|
||||
#backlight.icon {
|
||||
padding-right:1px;
|
||||
font-size: 13px;
|
||||
}
|
152
flake.lock
generated
@ -1,44 +1,5 @@
|
||||
{
|
||||
"nodes": {
|
||||
"catppuccin": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745352209,
|
||||
"narHash": "sha256-u3vJEzi6zxgG59KXjMR5koERsdKT5nd1OEKCpr6zgn8=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "6268e50dbb0ac9375e110560395b5dc199e4dfb8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733312601,
|
||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -46,43 +7,46 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744743431,
|
||||
"narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=",
|
||||
"lastModified": 1702735279,
|
||||
"narHash": "sha256-SztEzDOE/6bDNnWWvnRbSHPVrgewLwdSei1sxoZFejM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387",
|
||||
"rev": "e9b9ecef4295a835ab073814f100498716b05a96",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-ld": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701153607,
|
||||
"narHash": "sha256-h+odOVyiGmEERMECoFOj5P7FPiMR8IPRzroFA4sKivg=",
|
||||
"owner": "Mic92",
|
||||
"repo": "nix-ld",
|
||||
"rev": "bf5aa84a713c31d95b4307e442e966d6c7fd7ae7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "nix-ld",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1744463964,
|
||||
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1745234285,
|
||||
"narHash": "sha256-GfpyMzxwkfgRVN0cTGQSkTC0OHhEkv3Jf6Tcjm//qZ0=",
|
||||
"lastModified": 1702312524,
|
||||
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c11863f1e964833214b767f4a369c6e6a7aba141",
|
||||
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -92,50 +56,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1745279238,
|
||||
"narHash": "sha256-AQ7M9wTa/Pa/kK5pcGTgX/DGqMHyzsyINfN7ktsI7Fo=",
|
||||
"lastModified": 1702346276,
|
||||
"narHash": "sha256-eAQgwIWApFQ40ipeOjVSoK4TEHVd6nbSd9fApiHIw5A=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9684b53175fc6c09581e94cc85f05ab77464c7e3",
|
||||
"rev": "cf28ee258fd5f9a52de6b9865cdb93a1f96d09b7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1745234285,
|
||||
"narHash": "sha256-GfpyMzxwkfgRVN0cTGQSkTC0OHhEkv3Jf6Tcjm//qZ0=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c11863f1e964833214b767f4a369c6e6a7aba141",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"ref": "nixos-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745419524,
|
||||
"narHash": "sha256-oDRzqjH44hOEvJAyA1A+pCp01+rkjEvW1+AXCCvEYNE=",
|
||||
"lastModified": 1702770334,
|
||||
"narHash": "sha256-MVILxIF9ZVIk0f9w3yYZpy8auwxgey0MFzdoIFFvQNU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "a5724250ee4c962f1fbfe992061e296955277961",
|
||||
"rev": "1d37444620523278aa163bb9e30104f5d1152061",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -146,33 +89,12 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"catppuccin": "catppuccin",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"nix-ld": "nix-ld",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nur": "nur"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733222881,
|
||||
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
139
flake.nix
@ -2,120 +2,71 @@
|
||||
description = "NixOS system flake.";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";
|
||||
|
||||
nix-ld = {
|
||||
url = "github:Mic92/nix-ld";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
|
||||
nur.url = "github:nix-community/NUR";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# firefox-addons = {
|
||||
# url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# };
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixpkgs-unstable, catppuccin, nur, home-manager, ... } @ inputs:
|
||||
outputs = { self, nixpkgs, nixpkgs-stable, nix-ld, nur, home-manager, ... } @ inputs:
|
||||
let
|
||||
inherit (self) outputs;
|
||||
system = "x86_64-linux";
|
||||
userName = "nate";
|
||||
fullName = "Nate Anderson";
|
||||
email = "n8r@tuta.io";
|
||||
hostName = "winmax";
|
||||
desktop = "sway";
|
||||
gaming = true;
|
||||
timeZone = "America/Denver";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
unstablePkgs = import nixpkgs-unstable { system = system; config = { allowUnfree = true; }; };
|
||||
# pkgs23 = import nixpkgs-23 { system = system; config = { allowUnfree = true; }; };
|
||||
stablePkgs = nixpkgs-stable.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
luci = nixpkgs.lib.nixosSystem {
|
||||
|
||||
nixosConfigurations = {
|
||||
nixServer = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
# nixpkgs.overlays = [ nur.overlay ];
|
||||
./nixos/server_configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
];
|
||||
};
|
||||
nixDesktop = nixpkgs.lib.nixosSystem {
|
||||
# Pass args to desktop configuration
|
||||
specialArgs = {
|
||||
inherit inputs outputs timeZone system;
|
||||
inherit inputs outputs userName hostName desktop timeZone gaming system;
|
||||
};
|
||||
modules = [
|
||||
inputs.home-manager.nixosModules.home-manager {
|
||||
./nixos/desktop_configuration.nix
|
||||
# Setup nix-ld
|
||||
nix-ld.nixosModules.nix-ld
|
||||
# Setup home manager
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.luci = import ./luci/modules/home-manager/home.nix;
|
||||
home-manager.users.${userName} = import ./modules/home-manager/home.nix;
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
inherit inputs outputs userName fullName email hostName desktop gaming;
|
||||
};
|
||||
}
|
||||
./luci/default.nix
|
||||
];
|
||||
};
|
||||
nate = nixpkgs.lib.nixosSystem {
|
||||
# Pass args to desktop configuration
|
||||
specialArgs = {
|
||||
inherit inputs outputs timeZone system;
|
||||
};
|
||||
modules = [
|
||||
catppuccin.nixosModules.catppuccin
|
||||
# Setup home manager
|
||||
inputs.home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.nate = import ./nate/modules/home-manager/home.nix;
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs outputs unstablePkgs;
|
||||
};
|
||||
}
|
||||
./nate/default.nix
|
||||
];
|
||||
};
|
||||
nate-work = nixpkgs.lib.nixosSystem {
|
||||
# Pass args to desktop configuration
|
||||
specialArgs = {
|
||||
inherit inputs outputs timeZone system;
|
||||
};
|
||||
modules = [
|
||||
catppuccin.nixosModules.catppuccin
|
||||
# Setup home manager
|
||||
inputs.home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.nate = {
|
||||
imports = [
|
||||
./nate-work/modules/home-manager/home.nix
|
||||
catppuccin.homeManagerModules.catppuccin
|
||||
];
|
||||
};
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs outputs unstablePkgs;
|
||||
};
|
||||
}
|
||||
./nate-work/default.nix
|
||||
];
|
||||
};
|
||||
jaci = nixpkgs.lib.nixosSystem {
|
||||
# Pass args to desktop configuration
|
||||
specialArgs = {
|
||||
inherit inputs outputs timeZone system;
|
||||
};
|
||||
modules = [
|
||||
# Setup home manager
|
||||
inputs.home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.jaci = import ./jaci/modules/home-manager/home.nix;
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
}
|
||||
./jaci/default.nix
|
||||
];
|
||||
};
|
||||
scrappy = nixpkgs.lib.nixosSystem {
|
||||
# Pass args to desktop configuration
|
||||
specialArgs = {
|
||||
inherit inputs outputs timeZone system;
|
||||
};
|
||||
modules = [
|
||||
# Setup home manager
|
||||
inputs.home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.scrappy = import ./scrappy/modules/home-manager/home.nix;
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs outputs unstablePkgs;
|
||||
};
|
||||
}
|
||||
./scrappy/default.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
|
@ -1,39 +0,0 @@
|
||||
{ config, lib, inputs, outputs, pkgs, system, timeZone, ... }:
|
||||
let
|
||||
userName = "jaci";
|
||||
fullName = "Jaci Anderson";
|
||||
email = "jaci.s.anderson@gmail.com";
|
||||
hostName = "meowyxlife";
|
||||
desktop = "kde";
|
||||
gaming = true;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./desktop-configuration.nix
|
||||
./nixos/hardware-configuration.nix
|
||||
];
|
||||
|
||||
deskCfg = {
|
||||
userName = userName;
|
||||
hostName = hostName;
|
||||
de = desktop;
|
||||
installGaming = gaming;
|
||||
};
|
||||
|
||||
# Limit the number of generations to keep
|
||||
boot.loader.systemd-boot.configurationLimit = 5;
|
||||
|
||||
# Perform garbage collection weekly to maintain low disk usage
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 21d";
|
||||
};
|
||||
|
||||
# Optimize storage
|
||||
# You can also manually optimize the store via:
|
||||
# nix-store --optimise
|
||||
# Refer to the following link for more details:
|
||||
# https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-auto-optimise-store
|
||||
nix.settings.auto-optimise-store = true;
|
||||
}
|
@ -1,94 +0,0 @@
|
||||
{ config, lib, inputs, outputs, pkgs, timeZone, system, ... }:
|
||||
let
|
||||
supportedDesktops = [ "kde" ];
|
||||
supportedDesktopsStr = lib.strings.concatStringsSep ", " supportedDesktops;
|
||||
deskCfg = config.deskCfg;
|
||||
in
|
||||
{
|
||||
options.deskCfg = {
|
||||
de = lib.mkOption {
|
||||
default = "kde";
|
||||
type = lib.types.str;
|
||||
description = "Desktop Environment";
|
||||
};
|
||||
userName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Main username for system";
|
||||
};
|
||||
hostName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Hostname for system";
|
||||
};
|
||||
installGaming = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Whether to install gaming software or not";
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
modules/user/main_user.nix
|
||||
modules/labwc/labwc_conf.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
assertions = [
|
||||
{
|
||||
assertion = builtins.elem deskCfg.de supportedDesktops;
|
||||
message = "Unsupported desktop environment: ${deskCfg.de}\nSupported DE's: ${supportedDesktopsStr}";
|
||||
}
|
||||
];
|
||||
|
||||
nixpkgs.overlays = [
|
||||
inputs.nur.overlay
|
||||
];
|
||||
|
||||
# Enable flakes feature
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command" "flakes"
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
# boot.plymouth.enable = true;
|
||||
|
||||
networking.hostName = deskCfg.hostName; # Define your hostname.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
time.timeZone = timeZone;
|
||||
|
||||
|
||||
users.users.${deskCfg.userName} = {
|
||||
isNormalUser = true;
|
||||
initialPassword = "password";
|
||||
description = "main user";
|
||||
shell = pkgs.zsh;
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
"corectrl"
|
||||
deskCfg.userName
|
||||
"video"
|
||||
"audio"
|
||||
];
|
||||
};
|
||||
# main_user = {
|
||||
# enable = true;
|
||||
# userName = deskCfg.userName;
|
||||
# isDesktopUser = true;
|
||||
# };
|
||||
|
||||
labwc = {
|
||||
enable = true;
|
||||
useNonFree = true;
|
||||
installGaming = deskCfg.installGaming;
|
||||
systemPackages = with pkgs; [
|
||||
libreoffice
|
||||
];
|
||||
};
|
||||
|
||||
system.stateVersion = "23.11"; # Did you read the comment?
|
||||
};
|
||||
}
|
||||
|
@ -1,169 +0,0 @@
|
||||
# Theme
|
||||
theme = "catppuccin_macchiato"
|
||||
|
||||
[keys.normal]
|
||||
|
||||
# Navigation
|
||||
n = "move_char_left" # Maps the 'a' key to the move_char_left command
|
||||
i = "move_visual_line_down"
|
||||
e = "move_visual_line_up"
|
||||
o = "move_char_right"
|
||||
|
||||
I = "page_down"
|
||||
E = "page_up"
|
||||
|
||||
# Modes
|
||||
h = "insert_mode"
|
||||
H = "insert_at_line_start"
|
||||
l = "open_below"
|
||||
L = "open_above"
|
||||
|
||||
# Search
|
||||
k = "search_next"
|
||||
K = "search_prev"
|
||||
|
||||
# Selection
|
||||
C-s = "split_selection_on_newline"
|
||||
C-minus = "merge_selections"
|
||||
C-_ = "merge_consecutive_selections"
|
||||
"C-;" = "flip_selections"
|
||||
"C-:" = "ensure_selections_forward"
|
||||
"C-," = "remove_primary_selection"
|
||||
C-c = "change_selection_noyank"
|
||||
C-d = "delete_selection_noyank"
|
||||
"C-(" = "rotate_selection_contents_backward"
|
||||
"C-)" = "rotate_selection_contents_forward"
|
||||
C-x = "shrink_to_line_bounds"
|
||||
C-J = "join_selections_space"
|
||||
C-K = "remove_selections"
|
||||
C-o = "expand_selection"
|
||||
C-i = "shrink_selection"
|
||||
C-p = "select_prev_sibling"
|
||||
C-n = "select_next_sibling"
|
||||
|
||||
# Misc
|
||||
"C-/" = "toggle_comments"
|
||||
|
||||
[keys.normal."C-space"]
|
||||
x = ":wbc!"
|
||||
s = ":w!" # save file
|
||||
o = ":config-open"
|
||||
|
||||
[keys.normal.g]
|
||||
"/" = "goto_next_buffer"
|
||||
h = "goto_previous_buffer"
|
||||
n = ["collapse_selection", "extend_to_line_start"]
|
||||
o = ["collapse_selection", "extend_to_line_end"]
|
||||
e = "move_line_up"
|
||||
i = "move_line_down"
|
||||
l = "goto_last_line"
|
||||
|
||||
p = "no_op"
|
||||
k = "no_op"
|
||||
j = "no_op"
|
||||
|
||||
[keys.normal.m]
|
||||
m = ["select_mode", "match_brackets", "normal_mode"]
|
||||
|
||||
[keys.select]
|
||||
n = "extend_char_left"
|
||||
i = "extend_line_down"
|
||||
e = "extend_line_up"
|
||||
o = "extend_char_right"
|
||||
|
||||
[keys.select.g]
|
||||
"/" = "goto_next_buffer"
|
||||
h = "goto_previous_buffer"
|
||||
n = "goto_line_start"
|
||||
o = "goto_line_end"
|
||||
e = "move_line_up"
|
||||
i = "move_line_down"
|
||||
l = "goto_last_line"
|
||||
|
||||
p = "no_op"
|
||||
k = "no_op"
|
||||
j = "no_op"
|
||||
|
||||
# Window mode
|
||||
[keys.normal."C-w"]
|
||||
h = "hsplit"
|
||||
C-h = "hsplit"
|
||||
n = "jump_view_left"
|
||||
C-n = "jump_view_left"
|
||||
i = "jump_view_down"
|
||||
I = "swap_view_down"
|
||||
C-i = "jump_view_down"
|
||||
e = "jump_view_up"
|
||||
E = "swap_view_up"
|
||||
C-e = "jump_view_up"
|
||||
o = "jump_view_right"
|
||||
O = "swap_view_right"
|
||||
C-o = "jump_view_right"
|
||||
|
||||
# Remove old
|
||||
s = "no_op"
|
||||
C-s = "no_op"
|
||||
H = "no_op"
|
||||
j = "no_op"
|
||||
J = "no_op"
|
||||
C-j = "no_op"
|
||||
k = "no_op"
|
||||
K = "no_op"
|
||||
C-k = "no_op"
|
||||
l = "no_op"
|
||||
L = "no_op"
|
||||
C-l = "no_op"
|
||||
|
||||
[keys.normal."space"]
|
||||
h = "hover"
|
||||
k = "select_references_to_symbol_under_cursor"
|
||||
|
||||
[editor]
|
||||
bufferline = "always"
|
||||
auto-save = true
|
||||
line-number = "relative"
|
||||
cursorline = true
|
||||
cursorcolumn = true
|
||||
color-modes = true
|
||||
text-width = 120
|
||||
auto-format = true
|
||||
|
||||
[editor.statusline]
|
||||
left = ["mode", "spinner", "version-control"]
|
||||
center = ["file-name"]
|
||||
mode.normal = "Normal"
|
||||
mode.insert = "Insert"
|
||||
mode.select = "Select"
|
||||
|
||||
[editor.indent-guides]
|
||||
render = true
|
||||
|
||||
[editor.lsp]
|
||||
display-messages = true
|
||||
display-inlay-hints = false
|
||||
|
||||
[editor.cursor-shape]
|
||||
insert = "bar"
|
||||
normal = "block"
|
||||
select = "underline"
|
||||
|
||||
[editor.file-picker]
|
||||
hidden = false
|
||||
|
||||
[editor.whitespace.render]
|
||||
space = "all"
|
||||
tab = "all"
|
||||
tabpad = "all"
|
||||
newline = "none"
|
||||
nbsp = "none"
|
||||
|
||||
[editor.whitespace.characters]
|
||||
space = "·"
|
||||
tab = "⇀"
|
||||
tabpad = " "
|
||||
|
||||
|
||||
#w = "move_line_up" # Maps the 'w' key move_line_up
|
||||
#"C-S-esc" = "extend_line" # Maps Ctrl-Shift-Escape to extend_line
|
||||
#g = { a = "code_action" } # Maps `ga` to show possible code actions
|
||||
#"ret" = ["open_below", "normal_mode"] # Maps the enter key to open_below then re-enter normal mode
|
@ -1,4 +0,0 @@
|
||||
# Change dart format to 120 lines
|
||||
[[language]]
|
||||
name = "dart"
|
||||
formatter = {command = "dart", args = ["format", "-l", "120"]}
|
@ -1,3 +0,0 @@
|
||||
profile {
|
||||
output DP-2 position 0,0 mode 1920x1080@165.003006Hz
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
# Example autostart file
|
||||
|
||||
# Set background color.
|
||||
swww init >/dev/null 2>&1 &
|
||||
swww img ~/.config/labwc/backgrounds/cat1.jpg >/dev/null 2>&1 &
|
||||
|
||||
kanshi >/dev/null 2>&1 &
|
||||
|
||||
# Launch a panel such as yambar or waybar.
|
||||
waybar >/dev/null 2>&1 &
|
||||
|
||||
# Enable notifications. Typically GNOME/KDE application notifications go
|
||||
# through the org.freedesktop.Notifications D-Bus API and require a client such
|
||||
# as mako to function correctly. Thunderbird is an example of this.
|
||||
mako >/dev/null 2>&1 &
|
||||
|
||||
# Setup network applet
|
||||
nm-applet --indicator >/dev/null 2>&1 &
|
||||
|
||||
|
||||
wl-paste --watch cliphist store &
|
Before ![]() (image error) Size: 42 KiB |
@ -1,14 +0,0 @@
|
||||
# Allow tearing
|
||||
# WLR_DRM_NO_ATOMIC=1
|
||||
|
||||
# Firefox use wayland
|
||||
MOZ_ENABLE_WAYLAND=1
|
||||
|
||||
##
|
||||
## Set cursor theme and size. Find system icons themes with:
|
||||
## `find /usr/share/icons/ -type d -name "cursors"`
|
||||
##
|
||||
|
||||
# XCURSOR_THEME=breeze_cursors
|
||||
# XCURSOR_THEME=capitaine-cursors
|
||||
# XCURSOR_SIZE=24
|
@ -1,77 +0,0 @@
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<openbox_menu>
|
||||
<!-- Note: for localization support of menu items "client-menu" has to be removed here -->
|
||||
<menu id="client-menu">
|
||||
<item label="Minimize">
|
||||
<action name="Iconify" />
|
||||
</item>
|
||||
<item label="Maximize">
|
||||
<action name="ToggleMaximize" />
|
||||
</item>
|
||||
<item label="Fullscreen">
|
||||
<action name="ToggleFullscreen" />
|
||||
</item>
|
||||
<item label="Roll up/down">
|
||||
<action name="ToggleShade" />
|
||||
</item>
|
||||
<item label="Decorations">
|
||||
<action name="ToggleDecorations" />
|
||||
</item>
|
||||
<item label="Always on Top">
|
||||
<action name="ToggleAlwaysOnTop" />
|
||||
</item>
|
||||
<!--
|
||||
Any menu with the id "workspaces" will be hidden
|
||||
if there is only a single workspace available.
|
||||
-->
|
||||
<menu id="workspaces" label="Workspace">
|
||||
<item label="Move left">
|
||||
<action name="SendToDesktop" to="left" />
|
||||
</item>
|
||||
<item label="Move right">
|
||||
<action name="SendToDesktop" to="right" />
|
||||
</item>
|
||||
<separator />
|
||||
<item label="Always on Visible Workspace">
|
||||
<action name="ToggleOmnipresent" />
|
||||
</item>
|
||||
</menu>
|
||||
<item label="Close">
|
||||
<action name="Close" />
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="root-menu">
|
||||
<item label=" Web browser">
|
||||
<action name="Execute" command="firefox" />
|
||||
</item>
|
||||
<item label=" Steam">
|
||||
<action name="Execute" command="steam" />
|
||||
</item>
|
||||
<item label=" Files">
|
||||
<action name="Execute" command="thunar" />
|
||||
</item>
|
||||
<separator />
|
||||
<item label="Reconfigure">
|
||||
<action name="Reconfigure" />
|
||||
</item>
|
||||
<item label="Logout">
|
||||
<action name="Exit" />
|
||||
</item>
|
||||
<item label="Power Off">
|
||||
<action name="Execute" command="systemctl -i poweroff" />
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="some-custom-menu">
|
||||
<item label="Reconfigure">
|
||||
<action name="Reconfigure" />
|
||||
</item>
|
||||
<item label="Exit">
|
||||
<action name="Exit" />
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
</openbox_menu>
|
@ -1,536 +0,0 @@
|
||||
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
This file contains all supported config elements & attributes with
|
||||
default values.
|
||||
-->
|
||||
|
||||
<labwc_config>
|
||||
|
||||
<core>
|
||||
<decoration>server</decoration>
|
||||
<gap>0</gap>
|
||||
<adaptiveSync>yes</adaptiveSync>
|
||||
<allowTearing>yes</allowTearing>
|
||||
<reuseOutputMode>no</reuseOutputMode>
|
||||
</core>
|
||||
|
||||
<!-- Where to place new windows -->
|
||||
<placement>
|
||||
<policy>center</policy>
|
||||
</placement>
|
||||
|
||||
<!-- <font><theme> can be defined without an attribute to set all places -->
|
||||
<theme>
|
||||
<name>Kawaii</name>
|
||||
<cornerRadius>16</cornerRadius>
|
||||
<keepBorder>yes</keepBorder>
|
||||
<font>
|
||||
<name>GohuFont 14 Nerd Font</name>
|
||||
<size>14</size>
|
||||
<slant>normal</slant>
|
||||
<weight>bold</weight>
|
||||
</font>
|
||||
|
||||
<!--<font place="ActiveWindow">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="InactiveWindow">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="MenuItem">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="OnScreenDisplay">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font> -->
|
||||
</theme>
|
||||
|
||||
<!--
|
||||
Just as for window-rules, 'identifier' relates to app_id for native Wayland
|
||||
windows and WM_CLASS for XWayland clients.
|
||||
-->
|
||||
<windowSwitcher show="yes" preview="yes" outlines="yes">
|
||||
<fields>
|
||||
<!-- <field content="type" width="25%" />
|
||||
<field content="trimmed_identifier" width="25%" /> -->
|
||||
<field content="identifier" width="25%" />
|
||||
<field content="title" width="50%" />
|
||||
</fields>
|
||||
</windowSwitcher>
|
||||
|
||||
<!-- edge strength is in pixels -->
|
||||
<resistance>
|
||||
<screenEdgeStrength>20</screenEdgeStrength>
|
||||
</resistance>
|
||||
|
||||
<!-- Show a simple resize and move indicator -->
|
||||
<resize popupShow="Never" />
|
||||
|
||||
<focus>
|
||||
<followMouse>yes</followMouse>
|
||||
<followMouseRequiresMovement>yes</followMouseRequiresMovement>
|
||||
<raiseOnFocus>no</raiseOnFocus>
|
||||
</focus>
|
||||
|
||||
<!-- Set range to 0 to disable window snapping completely -->
|
||||
<snapping>
|
||||
<range>1</range>
|
||||
<topMaximize>yes</topMaximize>
|
||||
</snapping>
|
||||
|
||||
<!--
|
||||
Workspaces can be configured like this:
|
||||
<desktops>
|
||||
<popupTime>1000</popupTime>
|
||||
<names>
|
||||
<name>Workspace 1</name>
|
||||
<name>Workspace 2</name>
|
||||
<name>Workspace 3</name>
|
||||
<name>Workspace 4</name>
|
||||
</names>
|
||||
</desktops>
|
||||
|
||||
Or it can also be configured like this:
|
||||
<desktops number="4" />
|
||||
|
||||
popupTime defaults to 1000 so could be left out.
|
||||
Set to 0 to completely disable the workspace OSD.
|
||||
|
||||
Use GoToDesktop left | right to switch workspaces.
|
||||
Use SendToDesktop left | right to move windows.
|
||||
See man labwc-actions for further information.
|
||||
-->
|
||||
<desktops>
|
||||
<popupTime>1000</popupTime>
|
||||
<names>
|
||||
<name>Default</name>
|
||||
</names>
|
||||
</desktops>
|
||||
|
||||
<!--
|
||||
<margin> can be used to reserve space where new/maximized/tiled
|
||||
windows will not be placed. Clients using layer-shell protocol reserve
|
||||
space automatically, so <margin> is only intended for other, specialist
|
||||
cases.
|
||||
|
||||
If output is left empty, the margin will be applied to all outputs.
|
||||
|
||||
<margin top="" bottom="" left="" right="" output="" />
|
||||
-->
|
||||
|
||||
<!-- Percent based regions based on output usable area, % char is required -->
|
||||
<!--
|
||||
<regions>
|
||||
<region name="top-left" x="0%" y="0%" height="50%" width="50%" />
|
||||
<region name="top" x="0%" y="0%" height="50%" width="100%" />
|
||||
<region name="top-right" x="50%" y="0%" height="50%" width="50%" />
|
||||
<region name="left" x="0%" y="0%" height="100%" width="50%" />
|
||||
<region name="center" x="10%" y="10%" height="80%" width="80%" />
|
||||
<region name="right" x="50%" y="0%" height="100%" width="50%" />
|
||||
<region name="bottom-left" x="0%" y="50%" height="50%" width="50%" />
|
||||
<region name="bottom" x="0%" y="50%" height="50%" width="100%" />
|
||||
<region name="bottom-right" x="50%" y="50%" height="50%" width="50%" />
|
||||
</regions>
|
||||
-->
|
||||
|
||||
<!--
|
||||
Keybind actions are specified in labwc-actions(5)
|
||||
The following keybind modifiers are supported:
|
||||
W - window/super/logo
|
||||
A - alt
|
||||
C - ctrl
|
||||
S - shift
|
||||
|
||||
Use <keyboard><default /> to load all the default keybinds (those listed
|
||||
below). If the default keybinds are largely what you want, a sensible
|
||||
approach could be to start the <keyboard> section with a <default />
|
||||
element, and then (re-)define any special binds you need such as launching
|
||||
your favourite terminal or application launcher. See rc.xml for an example.
|
||||
-->
|
||||
<keyboard>
|
||||
<numlock>on</numlock>
|
||||
<layoutScope>global</layoutScope>
|
||||
<repeatRate>40</repeatRate>
|
||||
<repeatDelay>400</repeatDelay>
|
||||
<keybind key="A-Tab">
|
||||
<action name="NextWindow" />
|
||||
</keybind>
|
||||
<keybind key="W-Return">
|
||||
<action name="Execute" command="foot" />
|
||||
</keybind>
|
||||
<keybind key="W-j">
|
||||
<action name="Execute" command="firefox" />
|
||||
</keybind>
|
||||
<keybind key="A-F4">
|
||||
<action name="Close" />
|
||||
</keybind>
|
||||
<keybind key="W-f">
|
||||
<action name="ToggleMaximize" />
|
||||
</keybind>
|
||||
<keybind key="A-Left">
|
||||
<action name="MoveToEdge" direction="left" />
|
||||
</keybind>
|
||||
<keybind key="A-Right">
|
||||
<action name="MoveToEdge" direction="right" />
|
||||
</keybind>
|
||||
<keybind key="A-Up">
|
||||
<action name="MoveToEdge" direction="up" />
|
||||
</keybind>
|
||||
<keybind key="A-Down">
|
||||
<action name="MoveToEdge" direction="down" />
|
||||
</keybind>
|
||||
<keybind key="W-Left">
|
||||
<action name="SnapToEdge" direction="left" />
|
||||
</keybind>
|
||||
<keybind key="W-Right">
|
||||
<action name="SnapToEdge" direction="right" />
|
||||
</keybind>
|
||||
<keybind key="W-Up">
|
||||
<action name="SnapToEdge" direction="up" />
|
||||
</keybind>
|
||||
<keybind key="W-Down">
|
||||
<action name="SnapToEdge" direction="down" />
|
||||
</keybind>
|
||||
<keybind key="A-Space">
|
||||
<action name="ShowMenu" menu="client-menu" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioLowerVolume">
|
||||
<action name="Execute" command="amixer sset Master 5%-" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioRaiseVolume">
|
||||
<action name="Execute" command="amixer sset Master 5%+" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioMute">
|
||||
<action name="Execute" command="amixer sset Master toggle" />
|
||||
</keybind>
|
||||
<keybind key="XF86_MonBrightnessUp">
|
||||
<action name="Execute" command="brightnessctl set +10%" />
|
||||
</keybind>
|
||||
<keybind key="XF86_MonBrightnessDown">
|
||||
<action name="Execute" command="brightnessctl set 10%-" />
|
||||
</keybind>
|
||||
<!-- SnapToRegion via W-Numpad -->
|
||||
<!--
|
||||
<keybind key="W-KP_7">
|
||||
<action name="SnapToRegion" region="top-left" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_8">
|
||||
<action name="SnapToRegion" region="top" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_9">
|
||||
<action name="SnapToRegion" region="top-right" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_4">
|
||||
<action name="SnapToRegion" region="left" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_5">
|
||||
<action name="SnapToRegion" region="center" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_6">
|
||||
<action name="SnapToRegion" region="right" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_1">
|
||||
<action name="SnapToRegion" region="bottom-left" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_2">
|
||||
<action name="SnapToRegion" region="bottom" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_3">
|
||||
<action name="SnapToRegion" region="bottom-right" />
|
||||
</keybind>
|
||||
-->
|
||||
</keyboard>
|
||||
|
||||
<!--
|
||||
Multiple <mousebind> can exist within one <context>
|
||||
Multiple <actions> can exist within one <mousebind>
|
||||
Currently, the only openbox-action not supported is "Unshade"
|
||||
|
||||
Use <mouse><default /> to load all the default mousebinds (those listed
|
||||
below). If the default mousebinds are largely what you want, a sensible
|
||||
approach could be to start the <mouse> section with a <default />
|
||||
element, and then (re-)define any special binds you need such as launching
|
||||
a custom menu when right-clicking on your desktop. See rc.xml for an
|
||||
example.
|
||||
-->
|
||||
<mouse>
|
||||
|
||||
<!-- time is in ms -->
|
||||
<doubleClickTime>500</doubleClickTime>
|
||||
<scrollFactor>1.0</scrollFactor>
|
||||
|
||||
<context name="Frame">
|
||||
<mousebind button="A-Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="A-Left" action="Drag">
|
||||
<action name="Move" />
|
||||
</mousebind>
|
||||
<mousebind button="A-Right" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="A-Right" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Top">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Left">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Right">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Bottom">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="TRCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="BRCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="TLCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="BLCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="TitleBar">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind direction="Up" action="Scroll">
|
||||
<action name="Unshade" />
|
||||
<action name="Focus" />
|
||||
</mousebind>
|
||||
<mousebind direction="Down" action="Scroll">
|
||||
<action name="Unfocus" />
|
||||
<action name="Shade" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Title">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Move" />
|
||||
</mousebind>
|
||||
<mousebind button="Left" action="DoubleClick">
|
||||
<action name="ToggleMaximize" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Maximize">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ToggleMaximize" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ToggleMaximize" direction="horizontal" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Click">
|
||||
<action name="ToggleMaximize" direction="vertical" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="WindowMenu">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Iconify">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="Iconify" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Close">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="Close" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Client">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Root">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
</mousebind>
|
||||
<mousebind direction="Up" action="Scroll">
|
||||
<action name="GoToDesktop" to="left" wrap="yes" />
|
||||
</mousebind>
|
||||
<mousebind direction="Down" action="Scroll">
|
||||
<action name="GoToDesktop" to="right" wrap="yes" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
</mouse>
|
||||
|
||||
<!--
|
||||
Direct cursor movement to a specified output. If the compositor is
|
||||
running in nested mode, this does not take effect.
|
||||
-->
|
||||
<touch mapToOutput="" />
|
||||
|
||||
<!--
|
||||
The tablet cursor movement can be restricted to a single output.
|
||||
If output is left empty or the output does not exists, the tablet
|
||||
will span all outputs.
|
||||
|
||||
The tablet orientation can be changed in 90 degree steps, thus
|
||||
*rotate* can be set to [0|90|180|270]. Rotation will be applied
|
||||
after applying tablet area transformation.
|
||||
|
||||
The active tablet area can be specified by setting the *top*/*left*
|
||||
coordinate (in mm) and/or *width*/*height* (in mm). If width or
|
||||
height are omitted or default (0.0), width/height will be set to
|
||||
the remaining width/height seen from top/left.
|
||||
|
||||
Tablet buttons emulate regular mouse buttons. The tablet *button* can
|
||||
be set to any of [Tip|Stylus|Stylus2|Stylus3|Pad|Pad2|Pad3|..|Pad9].
|
||||
Valid *to* mouse buttons are [Left|Right|Middle].
|
||||
-->
|
||||
<tablet mapToOutput="" rotate="0">
|
||||
<!-- Active area dimensions are in mm -->
|
||||
<area top="0.0" left="0.0" width="0.0" height="0.0" />
|
||||
<map button="Tip" to="Left" />
|
||||
<map button="Stylus" to="Right" />
|
||||
<map button="Stylus2" to="Middle" />
|
||||
</tablet>
|
||||
|
||||
<!--
|
||||
The *category* attribute is optional and can be set to touch, touchpad,
|
||||
non-touch, default or the name of a device. You can obtain device names by
|
||||
running *libinput list-devices* as root or member of the input group.
|
||||
|
||||
Tap is set to *yes* be default. All others are left blank in order to use
|
||||
device defaults.
|
||||
|
||||
All values are [yes|no] except for:
|
||||
- pointerSpeed [-1.0 to 1.0]
|
||||
- accelProfile [flat|adaptive]
|
||||
- tapButtonMap [lrm|lmr]
|
||||
-->
|
||||
<libinput>
|
||||
<device category="default">
|
||||
<naturalScroll></naturalScroll>
|
||||
<leftHanded></leftHanded>
|
||||
<pointerSpeed></pointerSpeed>
|
||||
<accelProfile></accelProfile>
|
||||
<tap>yes</tap>
|
||||
<tapButtonMap></tapButtonMap>
|
||||
<tapAndDrag></tapAndDrag>
|
||||
<dragLock></dragLock>
|
||||
<middleEmulation></middleEmulation>
|
||||
<disableWhileTyping></disableWhileTyping>
|
||||
</device>
|
||||
</libinput>
|
||||
|
||||
<!--
|
||||
# Window Rules
|
||||
# - Criteria can consist of 'identifier' or 'title' or both (in which
|
||||
# case AND logic is used).
|
||||
# - 'identifier' relates to app_id for native Wayland windows and
|
||||
# WM_CLASS for XWayland clients.
|
||||
# - Criteria can also contain `matchOnce="true"` meaning that the rule
|
||||
# must only apply to the first instance of the window with that
|
||||
# particular 'identifier' or 'title'.
|
||||
# - Matching against patterns with '*' (wildcard) and '?' (joker) is
|
||||
# supported. Pattern matching is case-insensitive.
|
||||
|
||||
<windowRules>
|
||||
<windowRule identifier="*"><action name="Maximize"/></windowRule>
|
||||
<windowRule identifier="foo" serverDecoration="yes"/>
|
||||
<windowRule title="bar" serverDecoration="yes"/>
|
||||
<windowRule identifier="baz" title="quax" serverDecoration="yes"/>
|
||||
</windowRules>
|
||||
|
||||
# Example below for `lxqt-panel` and `pcmanfm-qt \-\-desktop`
|
||||
# where 'matchOnce' is used to avoid applying rule to the panel
|
||||
# configuration window with the same 'app_id'.
|
||||
|
||||
<windowRules>
|
||||
<windowRule identifier="lxqt-panel" matchOnce="true">
|
||||
<skipTaskbar>yes</skipTaskbar>
|
||||
<action name="MoveTo" x="0" y="0" />
|
||||
<action name="ToggleAlwaysOnTop"/>
|
||||
</windowRule>
|
||||
<windowRule title="pcmanfm-desktop*">
|
||||
<skipTaskbar>yes</skipTaskbar>
|
||||
<skipWindowSwitcher>yes</skipWindowSwitcher>
|
||||
<fixedPosition>yes</fixedPosition>
|
||||
<action name="MoveTo" x="0" y="0" />
|
||||
<action name="ToggleAlwaysOnBottom"/>
|
||||
</windowRule>
|
||||
<windowRule identifier="org.qutebrowser.qutebrowser">
|
||||
<action name="ResizeTo" width="1024" y="800" />
|
||||
<action name="AutoPlace"/>
|
||||
</windowRule>
|
||||
</windowRules>
|
||||
-->
|
||||
|
||||
</labwc_config>
|
@ -1,70 +0,0 @@
|
||||
# This file contains all themerc options with default values
|
||||
#
|
||||
# System-wide and local themes can be overridden by creating a copy of this
|
||||
# file and renaming it to $HOME/.config/labwc/themerc-override. Be careful
|
||||
# though - if you only want to override a small number of specific options,
|
||||
# make sure all other lines are commented out or deleted.
|
||||
|
||||
# general
|
||||
border.width: 3
|
||||
padding.height: 3
|
||||
|
||||
# The following options has no default, but fallbacks back to
|
||||
# font-height + 2x padding.height if not set.
|
||||
# titlebar.height:
|
||||
|
||||
# window border
|
||||
window.active.border.color: #ffe6f2
|
||||
window.inactive.border.color: #f6f5f4
|
||||
|
||||
# ToggleKeybinds status indicator
|
||||
window.active.indicator.toggled-keybind.color: #ff0000
|
||||
|
||||
# window titlebar background
|
||||
window.active.title.bg.color: #ffe6f2
|
||||
window.inactive.title.bg.color: #f6f5f4
|
||||
|
||||
# window titlebar text
|
||||
window.active.label.text.color: #000000
|
||||
window.inactive.label.text.color: #000000
|
||||
window.label.text.justify: center
|
||||
|
||||
# window buttons
|
||||
window.active.button.unpressed.image.color: #000000
|
||||
window.inactive.button.unpressed.image.color: #000000
|
||||
|
||||
# Note that "menu", "iconify", "max", "close" buttons colors can be defined
|
||||
# individually by inserting the type after the button node, for example:
|
||||
#
|
||||
# window.active.button.iconify.unpressed.image.color: #333333
|
||||
|
||||
# menu
|
||||
menu.overlap.x: 0
|
||||
menu.overlap.y: 0
|
||||
menu.width.min: 20
|
||||
menu.width.max: 200
|
||||
menu.items.bg.color: #ffe6f2
|
||||
menu.items.text.color: #330066
|
||||
menu.items.active.bg.color: #ffffcc
|
||||
menu.items.active.text.color: #330066
|
||||
menu.items.padding.x: 12
|
||||
menu.items.padding.y: 6
|
||||
menu.separator.width: 1
|
||||
menu.separator.padding.width: 6
|
||||
menu.separator.padding.height: 3
|
||||
menu.separator.color: #8c1aff
|
||||
|
||||
# on screen display (window-cycle dialog)
|
||||
osd.bg.color: #ffe6f2
|
||||
osd.border.color: #ffffcc
|
||||
osd.border.width: 3
|
||||
osd.label.text.color: #330066
|
||||
|
||||
osd.window-switcher.width: 600
|
||||
osd.window-switcher.padding: 4
|
||||
osd.window-switcher.item.padding.x: 10
|
||||
osd.window-switcher.item.padding.y: 1
|
||||
osd.window-switcher.item.active.border.width: 2
|
||||
|
||||
osd.workspace-switcher.boxes.width: 20
|
||||
osd.workspace-switcher.boxes.height: 20
|
@ -1,88 +0,0 @@
|
||||
{
|
||||
"modules-left": [
|
||||
"custom/launcher",
|
||||
"wlr/taskbar"
|
||||
],
|
||||
"modules-center": [
|
||||
"clock",
|
||||
],
|
||||
"modules-right": [
|
||||
"tray",
|
||||
"pulseaudio",
|
||||
"custom/spotify",
|
||||
"network",
|
||||
"memory",
|
||||
"cpu",
|
||||
"custom/power",
|
||||
],
|
||||
// Modules
|
||||
"wlr/taskbar": {
|
||||
"format": "{icon} {name}",
|
||||
"on-click": "minimize-raise",
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon} ",
|
||||
"format-icons":{
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"interval": 10,
|
||||
"format-alt": " {:%e %b %Y}", // Icon: calendar-alt
|
||||
"format": " {:%I:%M %p}",
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 5,
|
||||
"format": " {usage}%",
|
||||
"states": {
|
||||
"warning": 70,
|
||||
"critical": 90,
|
||||
},
|
||||
"on-click": "foot -e 'htop'",
|
||||
},
|
||||
"memory": {
|
||||
"interval": 5,
|
||||
"format": " {}%", // Icon: memory
|
||||
"on-click": "foot -e 'htop'",
|
||||
"states": {
|
||||
"warning": 70,
|
||||
"critical": 90
|
||||
}
|
||||
},
|
||||
"pulseaudio": {
|
||||
"scroll-step": 1, // %, can be a float
|
||||
"format": "{volume}% {icon}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": "婢 {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "וֹ",
|
||||
"headset": " ",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": [""]
|
||||
},
|
||||
"on-click": "pavucontrol",
|
||||
"on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +2%",
|
||||
"on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -2%",
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 18,
|
||||
"spacing":10,
|
||||
},
|
||||
"custom/spotify": {
|
||||
"format": " ",
|
||||
"on-click": "spot",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/launcher": {
|
||||
"format": " ",
|
||||
"on-click": "nwg-drawer",
|
||||
"tooltip": false
|
||||
},
|
||||
}
|
@ -1,100 +0,0 @@
|
||||
@define-color celadon #b0f2b4;
|
||||
@define-color celeste #baf2e9;
|
||||
@define-color thistle #dfc2f2;
|
||||
@define-color english_violet #51344d;
|
||||
@define-color indian_red #c97064;
|
||||
@define-color black_olive #1f271b;
|
||||
@define-color egg_shell #f8f1dd;
|
||||
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: @egg_shell;
|
||||
font-family: "GohuFont 14 Nerd Font";
|
||||
font-size: 16px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* The whole bar */
|
||||
#waybar {
|
||||
background: transparent;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#taskbar {
|
||||
background: transparent;
|
||||
color: @egg_shell;
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
margin-left: 3px;
|
||||
margin-right: 3px;
|
||||
color: transparent;
|
||||
border-bottom: 2px solid;
|
||||
}
|
||||
|
||||
#taskbar button.active {
|
||||
color: @celeste;
|
||||
}
|
||||
|
||||
.modules-left,
|
||||
.modules-right,
|
||||
.modules-center {
|
||||
margin: 8px 8px 1px 8px;
|
||||
background: transparent;
|
||||
color: @egg_shell;
|
||||
background-color: @english_violet;
|
||||
border-radius: 25px;
|
||||
padding: 0px 10px 0px 10px;
|
||||
}
|
||||
|
||||
/* Every modules */
|
||||
#clock,
|
||||
#cpu,
|
||||
#custom-spotify,
|
||||
#memory,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#taskbar {
|
||||
padding: 0.5rem 0.6rem;
|
||||
margin: 1px 0px;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Modules styles
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
#clock {
|
||||
min-width: 140px;
|
||||
}
|
||||
|
||||
#cpu.warning,
|
||||
#cpu.critical,
|
||||
#memory.warning,
|
||||
#memory.critical,
|
||||
#network.disconnected {
|
||||
color: @indian_red;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
padding-top: 6px;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
color: @celeste;
|
||||
}
|
||||
|
||||
#custom-spotify {
|
||||
color: @celadon;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
margin-left: 15px;
|
||||
margin-right: 15px;
|
||||
font-size: 15px;
|
||||
color: @indian_red;
|
||||
}
|
@ -1,135 +0,0 @@
|
||||
{ inputs, outputs, lib, config, pkgs, ... }:
|
||||
let
|
||||
userName = "jaci";
|
||||
fullName = "Jaci Anderson";
|
||||
email = "jaci.s.anderson@gmail.com";
|
||||
in
|
||||
{
|
||||
# nixpkgs.overlays = [
|
||||
# inputs.nur.overlay
|
||||
# ];
|
||||
|
||||
# nixpkgs.config.allowUnfree = true;
|
||||
# inputs.nixpkgs-stable.config.allowUnfree = true;
|
||||
imports = [
|
||||
../apps/firefox/firefox.nix
|
||||
];
|
||||
|
||||
home.username = userName;
|
||||
home.homeDirectory = "/home/${userName}";
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||
|
||||
# The home.packages option allows you to install Nix packages into your
|
||||
# environment.
|
||||
firefoxApp.enable = true;
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
helix
|
||||
|
||||
mangohud
|
||||
wine-wayland
|
||||
webcord
|
||||
mumble
|
||||
|
||||
bat
|
||||
duf
|
||||
fd
|
||||
fzf
|
||||
lsd
|
||||
ripgrep
|
||||
tre-command
|
||||
gtop
|
||||
|
||||
imv
|
||||
mpv
|
||||
gimp
|
||||
|
||||
# Install fonts
|
||||
(nerdfonts.override { fonts = [ "Hermit" "Gohu" ]; })
|
||||
# Style
|
||||
catppuccin-kvantum
|
||||
libsForQt5.qtstyleplugin-kvantum
|
||||
libsForQt5.qt5ct
|
||||
];
|
||||
|
||||
home.file."${config.xdg.configHome}" = {
|
||||
source = ../../dotfiles;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "hx";
|
||||
};
|
||||
|
||||
# Git setup
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userEmail = email;
|
||||
userName = fullName;
|
||||
};
|
||||
|
||||
# Zsh setup
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [ "git" ];
|
||||
theme = "half-life";
|
||||
};
|
||||
initExtra = ''
|
||||
alias ask="nix-shell -p python310Packages.openai --run 'python ~/source/python/chat.py'"
|
||||
|
||||
fzf_projects() {
|
||||
DIR=`
|
||||
fd .git --search-path="$HOME/source/" -H --ignore-file ~/.config/fd-ignore -tdirectory | \
|
||||
xargs dirname | \
|
||||
sed 's|$HOME||g' | \
|
||||
sort | \
|
||||
uniq | \
|
||||
fzf --preview 'ls $HOME/{}/README.md 2>/dev/null && bat $HOME/{}/README.md || printf "No README.md file found in this directory\n%s" {}' --preview-window=top | \
|
||||
xargs printf "$HOME/%s/"
|
||||
`
|
||||
cd $DIR
|
||||
}
|
||||
alias p="fzf_projects source/"
|
||||
|
||||
### Busykid Bash Functions
|
||||
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
#
|
||||
# Theming qt and gnome apps
|
||||
#
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style.name = "kvantum";
|
||||
};
|
||||
gtk = {
|
||||
enable = true;
|
||||
cursorTheme = {
|
||||
package = pkgs.catppuccin-cursors.latteLavender;
|
||||
name = "Catppuccin-Latte-Lavender-Cursors";
|
||||
};
|
||||
iconTheme = {
|
||||
package = pkgs.catppuccin-papirus-folders;
|
||||
name = "Papirus-Light";
|
||||
};
|
||||
theme = {
|
||||
name = "catppuccin-latte-lavender-compact+rimless";
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
accents = [ "lavender" ];
|
||||
size = "compact";
|
||||
tweaks = [ "rimless" ];
|
||||
variant = "latte";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
- Need a way to access files
|
||||
- Remove boot logs and grub menu
|
||||
- Cant open steam and then open a web browser
|
@ -1,36 +0,0 @@
|
||||
{ ... }:
|
||||
let
|
||||
userName = "luci";
|
||||
email = "luci@fosscat.com";
|
||||
hostName = "luci";
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./nixos/hardware-configuration.nix
|
||||
../shared/nix-gc.nix
|
||||
../shared/server-configuration.nix
|
||||
];
|
||||
|
||||
serverConfig = {
|
||||
userName = userName;
|
||||
hostName = hostName;
|
||||
hostId = "09e1d908";
|
||||
email = email;
|
||||
sshEnable = true;
|
||||
nfsEnable = true;
|
||||
nfsRoot = "/nfs_export";
|
||||
nfsExports = [ "/kage" ];
|
||||
nfsIpExport = "192.168.1.1/24";
|
||||
syncthingEnable = true;
|
||||
caldavEnable = true;
|
||||
};
|
||||
|
||||
# deskCfg = {
|
||||
# userName = userName;
|
||||
# hostName = hostName;
|
||||
# de = desktop;
|
||||
# installGaming = gaming;
|
||||
# };
|
||||
|
||||
nixGc.enable = true;
|
||||
}
|
@ -1,166 +0,0 @@
|
||||
# Theme
|
||||
theme = "catppuccin_macchiato"
|
||||
|
||||
[keys.normal]
|
||||
|
||||
# Navigation
|
||||
n = "move_char_left" # Maps the 'a' key to the move_char_left command
|
||||
i = "move_visual_line_down"
|
||||
e = "move_visual_line_up"
|
||||
o = "move_char_right"
|
||||
|
||||
I = "page_down"
|
||||
E = "page_up"
|
||||
|
||||
# Modes
|
||||
h = "insert_mode"
|
||||
H = "insert_at_line_start"
|
||||
l = "open_below"
|
||||
L = "open_above"
|
||||
|
||||
# Search
|
||||
k = "search_next"
|
||||
K = "search_prev"
|
||||
|
||||
# Selection
|
||||
C-s = "split_selection_on_newline"
|
||||
C-minus = "merge_selections"
|
||||
C-_ = "merge_consecutive_selections"
|
||||
"C-;" = "flip_selections"
|
||||
"C-:" = "ensure_selections_forward"
|
||||
"C-," = "remove_primary_selection"
|
||||
C-c = "change_selection_noyank"
|
||||
C-d = "delete_selection_noyank"
|
||||
"C-(" = "rotate_selection_contents_backward"
|
||||
"C-)" = "rotate_selection_contents_forward"
|
||||
C-x = "shrink_to_line_bounds"
|
||||
C-J = "join_selections_space"
|
||||
C-K = "remove_selections"
|
||||
C-o = "expand_selection"
|
||||
C-i = "shrink_selection"
|
||||
C-p = "select_prev_sibling"
|
||||
C-n = "select_next_sibling"
|
||||
|
||||
# Misc
|
||||
"C-/" = "toggle_comments"
|
||||
|
||||
[keys.normal."C-space"]
|
||||
x = ":wbc!"
|
||||
s = ":w!" # save file
|
||||
o = ":config-open"
|
||||
|
||||
[keys.normal.g]
|
||||
"/" = "goto_next_buffer"
|
||||
h = "goto_previous_buffer"
|
||||
n = ["collapse_selection", "extend_to_line_start"]
|
||||
o = ["collapse_selection", "extend_to_line_end"]
|
||||
e = "move_line_up"
|
||||
i = "move_line_down"
|
||||
l = "goto_last_line"
|
||||
|
||||
p = "no_op"
|
||||
k = "no_op"
|
||||
j = "no_op"
|
||||
|
||||
[keys.normal.m]
|
||||
m = ["select_mode", "match_brackets", "normal_mode"]
|
||||
|
||||
[keys.select]
|
||||
n = "extend_char_left"
|
||||
i = "extend_line_down"
|
||||
e = "extend_line_up"
|
||||
o = "extend_char_right"
|
||||
|
||||
[keys.select.g]
|
||||
"/" = "goto_next_buffer"
|
||||
h = "goto_previous_buffer"
|
||||
n = "goto_line_start"
|
||||
o = "goto_line_end"
|
||||
e = "move_line_up"
|
||||
i = "move_line_down"
|
||||
l = "goto_last_line"
|
||||
|
||||
p = "no_op"
|
||||
k = "no_op"
|
||||
j = "no_op"
|
||||
|
||||
# Window mode
|
||||
[keys.normal."C-w"]
|
||||
h = "hsplit"
|
||||
C-h = "hsplit"
|
||||
n = "jump_view_left"
|
||||
C-n = "jump_view_left"
|
||||
i = "jump_view_down"
|
||||
I = "swap_view_down"
|
||||
C-i = "jump_view_down"
|
||||
e = "jump_view_up"
|
||||
E = "swap_view_up"
|
||||
C-e = "jump_view_up"
|
||||
o = "jump_view_right"
|
||||
O = "swap_view_right"
|
||||
C-o = "jump_view_right"
|
||||
|
||||
# Remove old
|
||||
s = "no_op"
|
||||
C-s = "no_op"
|
||||
H = "no_op"
|
||||
j = "no_op"
|
||||
J = "no_op"
|
||||
C-j = "no_op"
|
||||
k = "no_op"
|
||||
K = "no_op"
|
||||
C-k = "no_op"
|
||||
l = "no_op"
|
||||
L = "no_op"
|
||||
C-l = "no_op"
|
||||
|
||||
[keys.normal."space"]
|
||||
h = "hover"
|
||||
k = "select_references_to_symbol_under_cursor"
|
||||
|
||||
[editor]
|
||||
bufferline = "multiple"
|
||||
auto-save = true
|
||||
line-number = "relative"
|
||||
cursorline = true
|
||||
color-modes = true
|
||||
text-width = 120
|
||||
auto-format = true
|
||||
|
||||
[editor.statusline]
|
||||
left = ["mode", "spinner", "version-control", "file-name"]
|
||||
mode.normal = "Normal"
|
||||
mode.insert = "Insert"
|
||||
mode.select = "Select"
|
||||
|
||||
[editor.indent-guides]
|
||||
render = true
|
||||
|
||||
[editor.lsp]
|
||||
display-messages = true
|
||||
|
||||
[editor.cursor-shape]
|
||||
insert = "bar"
|
||||
normal = "block"
|
||||
select = "underline"
|
||||
|
||||
[editor.file-picker]
|
||||
hidden = false
|
||||
|
||||
[editor.whitespace.render]
|
||||
space = "all"
|
||||
tab = "all"
|
||||
tabpad = "all"
|
||||
newline = "none"
|
||||
nbsp = "none"
|
||||
|
||||
[editor.whitespace.characters]
|
||||
space = "·"
|
||||
tab = "⇀"
|
||||
tabpad = " "
|
||||
|
||||
|
||||
#w = "move_line_up" # Maps the 'w' key move_line_up
|
||||
#"C-S-esc" = "extend_line" # Maps Ctrl-Shift-Escape to extend_line
|
||||
#g = { a = "code_action" } # Maps `ga` to show possible code actions
|
||||
#"ret" = ["open_below", "normal_mode"] # Maps the enter key to open_below then re-enter normal mode
|
@ -1,93 +0,0 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
let
|
||||
userName = "luci";
|
||||
fullName = "Luci NAS";
|
||||
email = "luci@fosscat.com";
|
||||
in
|
||||
{
|
||||
home.username = userName;
|
||||
home.homeDirectory = "/home/${userName}";
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
helix
|
||||
jq
|
||||
|
||||
#
|
||||
# Better Unix
|
||||
#
|
||||
bat
|
||||
duf
|
||||
fd
|
||||
fzf
|
||||
lsd
|
||||
ripgrep
|
||||
tre-command
|
||||
gtop
|
||||
htop
|
||||
neofetch
|
||||
|
||||
# Normies
|
||||
unzip
|
||||
|
||||
imv
|
||||
mpv
|
||||
ffmpeg
|
||||
];
|
||||
|
||||
home.file."${config.xdg.configHome}" = {
|
||||
source = ../../dotfiles;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
# Copy radicale pass file
|
||||
home.file."${config.xdg.configHome}/radicale" = {
|
||||
source = ../radicale;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "hx";
|
||||
};
|
||||
|
||||
# Git setup
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userEmail = email;
|
||||
userName = fullName;
|
||||
};
|
||||
|
||||
programs = {
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableZshIntegration = true; # see note on other shells below
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
bash.enable = true; # see note on other shells below
|
||||
};
|
||||
|
||||
# Zsh setup
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [ "git" ];
|
||||
theme = "dieter";
|
||||
};
|
||||
initExtra = ''
|
||||
eval "$(direnv hook zsh)"
|
||||
|
||||
alias ls="lsd"
|
||||
alias l="lsd --almost-all --long"
|
||||
alias llm="lsd --timesort --long"
|
||||
alias lS="lsd --oneline --classic"
|
||||
alias lt="lsd --tree --depth=2"
|
||||
alias grep="rg"
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
@ -1 +0,0 @@
|
||||
n8r:$apr1$HpSAv/EE$pCDM0qP2JJIY0B5aUXjS30
|
@ -1,55 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ "zfs" ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.supportedFilesystems = [ "zfs" ];
|
||||
|
||||
boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
|
||||
|
||||
boot.zfs.forceImportRoot = false;
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-label/NIXROOT";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-label/NIXBOOT";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
fileSystems."/nfs_export/kage" =
|
||||
{ device = "zdata/kage";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
# change ownership of kage to be open
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /nfs_export/kage 0777 kage users - -"
|
||||
];
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp6s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
@ -30,14 +30,14 @@ in
|
||||
engines = {
|
||||
"Startpage" = {
|
||||
urls = [{
|
||||
template = "https://www.startpage.com/sp/search?query={searchTerms}";
|
||||
template = "https://www.startpage.com/do/mypage.pl?prfe=a1ffaae1a3f4dc133b6e11b3d611db561598fc16fbc43a22c2694805a5b4d46852c848cb54f3ccbc9cea0e8e83dab567d3abe2b350870e7781f8701d4558a1c988aced444d1e8d8a7b830563/search?query={searchTerms}";
|
||||
}];
|
||||
};
|
||||
};
|
||||
};
|
||||
settings = {
|
||||
"browser.startup.blankWindow" = true;
|
||||
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
|
||||
"browser.startup.homepage" = "about:blank";
|
||||
"browser.search.region" = "US";
|
||||
"browser.search.isUS" = true;
|
||||
"distribution.searchplugins.defaultLocale" = "en-US";
|
146
modules/home-manager/home.nix
Normal file
@ -0,0 +1,146 @@
|
||||
{ inputs, outputs, lib, config, pkgs, userName, fullName, email, hostName, desktop, gaming, ... }:
|
||||
{
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# manage.
|
||||
#
|
||||
|
||||
# nixpkgs.overlays = [
|
||||
# inputs.nur.overlay
|
||||
# ];
|
||||
|
||||
# nixpkgs.config.allowUnfree = true;
|
||||
# inputs.nixpkgs-stable.config.allowUnfree = true;
|
||||
imports = [
|
||||
../apps/firefox/firefox.nix
|
||||
];
|
||||
|
||||
home.username = userName;
|
||||
home.homeDirectory = "/home/${userName}";
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||
|
||||
# The home.packages option allows you to install Nix packages into your
|
||||
# environment.
|
||||
firefoxApp.enable = true;
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
# nur.repos.crazazy.js.eslint
|
||||
# inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
|
||||
# kakoune
|
||||
keepassxc
|
||||
obs-studio
|
||||
signal-desktop
|
||||
waybar
|
||||
wofi
|
||||
xfce.thunar
|
||||
# Install fonts
|
||||
(nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; })
|
||||
|
||||
# # You can also create simple shell scripts directly inside your
|
||||
# # configuration. For example, this adds a command 'my-hello' to your
|
||||
# # environment:
|
||||
# (pkgs.writeShellScriptBin "my-hello" ''
|
||||
# echo "Hello, ${config.home.username}!"
|
||||
# '')
|
||||
];
|
||||
|
||||
# TODO not working firefox plugins
|
||||
# extensions = with inputs.firefox-addons.packages.${pkgs.system}; [ ublock-origin bitwarden ];
|
||||
|
||||
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
# plain files is through 'home.file'.
|
||||
home.file."${config.xdg.configHome}" = {
|
||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||
# # symlink to the Nix store copy.
|
||||
# ".screenrc".source = dotfiles/screenrc;
|
||||
source = ../../dotfiles;
|
||||
recursive = true;
|
||||
|
||||
# # You can also set the file content immediately.
|
||||
# ".gradle/gradle.properties".text = ''
|
||||
# org.gradle.console=verbose
|
||||
# org.gradle.daemon.idletimeout=3600000
|
||||
# '';
|
||||
};
|
||||
|
||||
|
||||
# Home Manager can also manage your environment variables through
|
||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
||||
# either
|
||||
#
|
||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
# or
|
||||
#
|
||||
# /etc/profiles/per-user/nate/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
home.sessionVariables = {
|
||||
EDITOR = "kak";
|
||||
XDG_CURRENT_DESKTOP="sway";
|
||||
};
|
||||
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
# config = rec {
|
||||
# modifier = "Mod4";
|
||||
# terminal = "foot";
|
||||
# # startup = [
|
||||
# # {command = "firefox";}
|
||||
# # ];
|
||||
# };
|
||||
};
|
||||
|
||||
|
||||
# kdeconnect setup
|
||||
# services.kdeconnect = {
|
||||
# enable = true;
|
||||
# indicator = true;
|
||||
# };
|
||||
|
||||
# Git setup
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userEmail = email;
|
||||
userName = fullName;
|
||||
};
|
||||
|
||||
# Zsh setup
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
#history = {
|
||||
# Size = 10000;
|
||||
#};
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [ "git" ];
|
||||
theme = "half-life";
|
||||
};
|
||||
initExtra = ''
|
||||
alias ask="nix-shell -p python310Packages.openai --run 'python ~/source/python/chat.py'"
|
||||
|
||||
fzf_projects() {
|
||||
DIR=`
|
||||
fd .git --search-path="$HOME/source/" -H --ignore-file ~/.config/fd-ignore -tdirectory | \
|
||||
xargs dirname | \
|
||||
sed 's|$HOME||g' | \
|
||||
sort | \
|
||||
uniq | \
|
||||
fzf --preview 'ls $HOME/{}/README.md 2>/dev/null && bat $HOME/{}/README.md || printf "No README.md file found in this directory\n%s" {}' --preview-window=top | \
|
||||
xargs printf "$HOME/%s/"
|
||||
`
|
||||
cd $DIR
|
||||
}
|
||||
alias p="fzf_projects source/"
|
||||
|
||||
### Busykid Bash Functions
|
||||
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
@ -1,11 +1,11 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.labwc = {
|
||||
enable = lib.mkEnableOption "Enable labwc window manager.";
|
||||
options.swaywm = {
|
||||
enable = lib.mkEnableOption "Enable sway window manager.";
|
||||
useNonFree = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Whether to enable non-free software in the labwc config";
|
||||
description = "Whether to enable non-free software in the sway config";
|
||||
};
|
||||
installGaming = lib.mkOption {
|
||||
default = false;
|
||||
@ -14,7 +14,7 @@
|
||||
};
|
||||
systemPackages = lib.mkOption {
|
||||
default = [];
|
||||
description = "Add any additional packages desired. Merged with labwc defaults.";
|
||||
description = "Add any additional packages desired. Merged with sway defaults.";
|
||||
};
|
||||
|
||||
};
|
||||
@ -22,15 +22,14 @@
|
||||
###
|
||||
## Configuration
|
||||
###
|
||||
config = lib.mkIf config.labwc.enable {
|
||||
|
||||
programs.dconf.enable = true;
|
||||
config = lib.mkIf config.swaywm.enable {
|
||||
|
||||
nixpkgs.config.allowUnfree = config.labwc.useNonFree;
|
||||
nixpkgs.config.allowUnfree = config.swaywm.useNonFree;
|
||||
# For R2ModMan
|
||||
# nixpkgs.config.permittedInsecurePackages = [
|
||||
# "electron-25.9.0"
|
||||
# ];
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"electron-25.9.0"
|
||||
];
|
||||
|
||||
###
|
||||
## XDG portal setup
|
||||
@ -44,6 +43,7 @@
|
||||
};
|
||||
};
|
||||
extraPortals = with pkgs; [
|
||||
# xdg-desktop-portal-kde
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
wlr.enable = true;
|
||||
@ -59,33 +59,26 @@
|
||||
bash
|
||||
foot
|
||||
git
|
||||
glib
|
||||
glib # gsettings
|
||||
grim
|
||||
sway-contrib.grimshot
|
||||
ghostscript
|
||||
labwc
|
||||
libnotify
|
||||
kanshi
|
||||
mako
|
||||
spot
|
||||
ncspot
|
||||
networkmanagerapplet
|
||||
nwg-dock
|
||||
nwg-drawer
|
||||
nwg-look
|
||||
pavucontrol
|
||||
slurp
|
||||
swaylock
|
||||
swayidle
|
||||
swww
|
||||
wl-clipboard
|
||||
cliphist
|
||||
waybar
|
||||
wdisplays
|
||||
xdg-utils
|
||||
zsh
|
||||
# Fonts
|
||||
ghostscript
|
||||
|
||||
]
|
||||
config.labwc.systemPackages
|
||||
# (lib.mkIf config.labwc.installGaming [
|
||||
config.swaywm.systemPackages
|
||||
# (lib.mkIf config.swaywm.installGaming [
|
||||
# pkgs.lutris
|
||||
# ])
|
||||
];
|
||||
@ -102,60 +95,39 @@
|
||||
programs.xfconf.enable = true;
|
||||
|
||||
programs.zsh.enable = true;
|
||||
programs.steam.enable = config.labwc.installGaming;
|
||||
programs.gamemode.enable = true;
|
||||
programs.steam.enable = config.swaywm.installGaming;
|
||||
|
||||
|
||||
###
|
||||
## Services
|
||||
###
|
||||
|
||||
# Printing
|
||||
services.flatpak.enable = true;
|
||||
services.printing.enable = true;
|
||||
services.printing.drivers = [ pkgs.brlaser ];
|
||||
|
||||
services.gvfs.enable = true; # thunar functionalities
|
||||
|
||||
services.openssh.enable = true;
|
||||
|
||||
services.dbus.enable = true;
|
||||
services.printing.enable = true;
|
||||
services.printing.drivers = [ pkgs.brlaser ];
|
||||
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# kdeconnect setup
|
||||
programs.kdeconnect.enable = true;
|
||||
|
||||
###
|
||||
## Misc
|
||||
###
|
||||
# sound.enable = true;
|
||||
# Necessary for home-manager labwc setup
|
||||
sound.enable = true;
|
||||
# Necessary for home-manager sway setup
|
||||
security.polkit.enable = true;
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = rec {
|
||||
initial_session = {
|
||||
command = "${pkgs.labwc}/bin/labwc";
|
||||
user = "jaci";
|
||||
};
|
||||
default_session = initial_session;
|
||||
};
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
# Enable HIP
|
||||
systemd.tmpfiles.rules = [
|
||||
"L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"
|
||||
];
|
||||
hardware.graphics = {
|
||||
# Mesa
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
# Rocm support
|
||||
extraPackages = with pkgs; [
|
||||
rocmPackages.clr.icd
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.main_user;
|
||||
cfg = config.main_user;
|
||||
in
|
||||
{
|
||||
options.main_user = {
|
||||
@ -28,7 +28,7 @@ in
|
||||
description = "main user";
|
||||
shell = pkgs.zsh;
|
||||
}
|
||||
|
||||
|
||||
(lib.mkIf (!cfg.isDesktopUser) {
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
@ -50,4 +50,3 @@ in
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
{ config, lib, inputs, outputs, pkgs, system, timeZone, ... }:
|
||||
let
|
||||
userName = "nate";
|
||||
fullName = "Nate Anderson";
|
||||
email = "nate.anderson@vasion.com";
|
||||
hostName = "nate-vasion";
|
||||
desktop = "sway";
|
||||
gaming = true;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./desktop-configuration.nix
|
||||
./nixos/hardware-configuration.nix
|
||||
./nixos/auto-update.nix
|
||||
];
|
||||
|
||||
deskCfg = {
|
||||
userName = userName;
|
||||
hostName = hostName;
|
||||
de = desktop;
|
||||
installGaming = gaming;
|
||||
};
|
||||
|
||||
# Limit the number of generations to keep
|
||||
boot.loader.systemd-boot.configurationLimit = 5;
|
||||
|
||||
# Perform garbage collection weekly to maintain low disk usage
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 14d";
|
||||
};
|
||||
|
||||
autoCfg = {
|
||||
userName = userName;
|
||||
};
|
||||
|
||||
services.clamav.daemon.enable = true;
|
||||
services.clamav.scanner.enable = true;
|
||||
|
||||
nix.settings.auto-optimise-store = true;
|
||||
}
|
@ -1,96 +0,0 @@
|
||||
{ config, lib, inputs, outputs, pkgs, timeZone, system, ... }:
|
||||
let
|
||||
supportedDesktops = [ "sway" "hyprland" ];
|
||||
supportedDesktopsStr = lib.strings.concatStringsSep ", " supportedDesktops;
|
||||
deskCfg = config.deskCfg;
|
||||
in
|
||||
{
|
||||
options.deskCfg = {
|
||||
de = lib.mkOption {
|
||||
default = "sway";
|
||||
type = lib.types.str;
|
||||
description = "Desktop Environment";
|
||||
};
|
||||
userName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Main username for system";
|
||||
};
|
||||
hostName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Hostname for system";
|
||||
};
|
||||
installGaming = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Whether to install gaming software or not";
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
modules/user/main_user.nix
|
||||
modules/sway/sway_conf.nix
|
||||
modules/hypr/hyprland.nix
|
||||
|
||||
# inputs.nur.hmModules.nur
|
||||
];
|
||||
|
||||
config = {
|
||||
assertions = [
|
||||
{
|
||||
assertion = builtins.elem deskCfg.de supportedDesktops;
|
||||
message = "Unsupported desktop environment: ${deskCfg.de}\nSupported DE's: ${supportedDesktopsStr}";
|
||||
}
|
||||
];
|
||||
|
||||
nixpkgs.overlays = [
|
||||
inputs.nur.overlays.default
|
||||
];
|
||||
|
||||
|
||||
# Enable flakes feature
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command" "flakes"
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
# boot.plymouth.enable = true;
|
||||
|
||||
networking.hostName = deskCfg.hostName; # Define your hostname.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
time.timeZone = timeZone;
|
||||
|
||||
hardware.sane = {
|
||||
enable = true;
|
||||
brscan5.enable = true;
|
||||
};
|
||||
|
||||
main_user = {
|
||||
enable = true;
|
||||
userName = deskCfg.userName;
|
||||
isDesktopUser = true;
|
||||
};
|
||||
|
||||
swaywm = {
|
||||
enable = false;
|
||||
useNonFree = true;
|
||||
installGaming = deskCfg.installGaming;
|
||||
systemPackages = with pkgs; [
|
||||
libreoffice
|
||||
];
|
||||
};
|
||||
|
||||
hypr = {
|
||||
enable = true;
|
||||
user = deskCfg.userName;
|
||||
systemPackages = with pkgs; [
|
||||
libreoffice
|
||||
];
|
||||
};
|
||||
|
||||
system.stateVersion = "23.11"; # Did you read the comment?
|
||||
};
|
||||
}
|
||||
|
@ -1,2 +0,0 @@
|
||||
--enable-features=UseOzonePlatform
|
||||
--ozone-platform=wayland
|
@ -1,2 +0,0 @@
|
||||
--enable-features=UseOzonePlatform
|
||||
--ozone-platform=wayland
|
@ -1,2 +0,0 @@
|
||||
--enable-features=UseOzonePlatform
|
||||
--ozone-platform=wayland
|
@ -1,45 +0,0 @@
|
||||
[main]
|
||||
font=Hurmit Nerd Font Mono:size=12
|
||||
|
||||
selection-target=clipboard
|
||||
|
||||
[colors]
|
||||
# Catpuccin Machiatto theme
|
||||
foreground=cad3f5 # Text
|
||||
background=24273a # Base
|
||||
regular0=494d64 # Surface 1
|
||||
regular1=ed8796 # red
|
||||
regular2=a6da95 # green
|
||||
regular3=eed49f # yellow
|
||||
regular4=8aadf4 # blue
|
||||
regular5=f5bde6 # pink
|
||||
regular6=8bd5ca # teal
|
||||
regular7=b8c0e0 # Subtext 1
|
||||
bright0=5b6078 # Surface 2
|
||||
bright1=ed8796 # red
|
||||
bright2=a6da95 # green
|
||||
bright3=eed49f # yellow
|
||||
bright4=8aadf4 # blue
|
||||
bright5=f5bde6 # pink
|
||||
bright6=8bd5ca # teal
|
||||
bright7=a5adcb # Subtext 0foreground=cdd6f4 # Text
|
||||
|
||||
# [colors]
|
||||
# Catpuccin Mocha theme colors
|
||||
# background=1e1e2e # Base
|
||||
# regular0=45475a # Surface 1
|
||||
# regular1=f38ba8 # red
|
||||
# regular2=a6e3a1 # green
|
||||
# regular3=f9e2af # yellow
|
||||
# regular4=89b4fa # blue
|
||||
# regular5=f5c2e7 # pink
|
||||
# regular6=94e2d5 # teal
|
||||
# regular7=bac2de # Subtext 1
|
||||
# bright0=585b70 # Surface 2
|
||||
# bright1=f38ba8 # red
|
||||
# bright2=a6e3a1 # green
|
||||
# bright3=f9e2af # yellow
|
||||
# bright4=89b4fa # blue
|
||||
# bright5=f5c2e7 # pink
|
||||
# bright6=94e2d5 # teal
|
||||
# bright7=a6adc8 # Subtext 0
|
@ -1,46 +0,0 @@
|
||||
theme = "catppuccin-macchiato"
|
||||
|
||||
###
|
||||
# Font config
|
||||
###
|
||||
|
||||
font-size = 14
|
||||
font-family = "Monaspace Xenon Var"
|
||||
font-family-bold = "Monaspace Argon Var"
|
||||
font-family-italic = "Monaspace Radon Var"
|
||||
font-family-bold-italic = "Monaspace Krypton Var"
|
||||
|
||||
font-variation = wght=400
|
||||
font-variation = wdth=100
|
||||
font-variation = slnt=-2
|
||||
|
||||
font-variation-bold = wght=600
|
||||
font-variation-bold = wdth=100
|
||||
|
||||
font-variation-italic = wght=400
|
||||
font-variation-italic = wdth=100
|
||||
font-variation-italic = slnt=-10
|
||||
|
||||
font-variation-bold-italic = wght=700
|
||||
font-variation-bold-italic = wdth=100
|
||||
font-variation-bold-italic = slnt=-3
|
||||
|
||||
# Liguratures
|
||||
font-feature = +ss01, +ss02, +ss03, +ss04, +ss05, +ss06, +ss07, +ss08, +ss09, +ss10
|
||||
# Enables texture healing
|
||||
font-feature = +calt
|
||||
font-feature = +liga
|
||||
|
||||
###
|
||||
# Keybinds
|
||||
###
|
||||
|
||||
keybind = ctrl+shift+plus=increase_font_size:1
|
||||
# keybind = ctrl+minus=decrease_font_size:1
|
||||
|
||||
###
|
||||
# Misc
|
||||
###
|
||||
|
||||
window-padding-x = 4
|
||||
window-padding-y = 4
|
@ -1,170 +0,0 @@
|
||||
# Theme
|
||||
theme = "catppuccin_macchiato"
|
||||
|
||||
[keys.normal]
|
||||
|
||||
# Navigation
|
||||
n = "move_char_left" # Maps the 'a' key to the move_char_left command
|
||||
i = "move_visual_line_down"
|
||||
e = "move_visual_line_up"
|
||||
o = "move_char_right"
|
||||
|
||||
I = "page_down"
|
||||
E = "page_up"
|
||||
|
||||
# Modes
|
||||
h = "insert_mode"
|
||||
H = "insert_at_line_start"
|
||||
l = "open_below"
|
||||
L = "open_above"
|
||||
|
||||
# Search
|
||||
k = "search_next"
|
||||
K = "search_prev"
|
||||
|
||||
# Selection
|
||||
C-s = "split_selection_on_newline"
|
||||
C-minus = "merge_selections"
|
||||
C-_ = "merge_consecutive_selections"
|
||||
"C-;" = "flip_selections"
|
||||
"C-:" = "ensure_selections_forward"
|
||||
"C-," = "remove_primary_selection"
|
||||
C-c = "change_selection_noyank"
|
||||
C-d = "delete_selection_noyank"
|
||||
"C-(" = "rotate_selection_contents_backward"
|
||||
"C-)" = "rotate_selection_contents_forward"
|
||||
C-x = "shrink_to_line_bounds"
|
||||
C-J = "join_selections_space"
|
||||
C-K = "remove_selections"
|
||||
C-o = "expand_selection"
|
||||
C-i = "shrink_selection"
|
||||
C-p = "select_prev_sibling"
|
||||
C-n = "select_next_sibling"
|
||||
|
||||
# Misc
|
||||
"C-/" = "toggle_comments"
|
||||
|
||||
[keys.normal."C-space"]
|
||||
x = ":wbc!"
|
||||
s = ":w!" # save file
|
||||
o = ":config-open"
|
||||
c = ["vsplit", ":open llm-chat.md"]
|
||||
|
||||
[keys.normal.g]
|
||||
"/" = "goto_next_buffer"
|
||||
h = "goto_previous_buffer"
|
||||
n = ["collapse_selection", "extend_to_line_start"]
|
||||
o = ["collapse_selection", "extend_to_line_end"]
|
||||
e = "move_line_up"
|
||||
i = "move_line_down"
|
||||
l = "goto_last_line"
|
||||
|
||||
p = "no_op"
|
||||
k = "no_op"
|
||||
j = "no_op"
|
||||
|
||||
[keys.normal.m]
|
||||
m = ["select_mode", "match_brackets", "normal_mode"]
|
||||
|
||||
[keys.select]
|
||||
n = "extend_char_left"
|
||||
i = "extend_line_down"
|
||||
e = "extend_line_up"
|
||||
o = "extend_char_right"
|
||||
|
||||
[keys.select.g]
|
||||
"/" = "goto_next_buffer"
|
||||
h = "goto_previous_buffer"
|
||||
n = "goto_line_start"
|
||||
o = "goto_line_end"
|
||||
e = "move_line_up"
|
||||
i = "move_line_down"
|
||||
l = "goto_last_line"
|
||||
|
||||
p = "no_op"
|
||||
k = "no_op"
|
||||
j = "no_op"
|
||||
|
||||
# Window mode
|
||||
[keys.normal."C-w"]
|
||||
h = "hsplit"
|
||||
C-h = "hsplit"
|
||||
n = "jump_view_left"
|
||||
C-n = "jump_view_left"
|
||||
i = "jump_view_down"
|
||||
I = "swap_view_down"
|
||||
C-i = "jump_view_down"
|
||||
e = "jump_view_up"
|
||||
E = "swap_view_up"
|
||||
C-e = "jump_view_up"
|
||||
o = "jump_view_right"
|
||||
O = "swap_view_right"
|
||||
C-o = "jump_view_right"
|
||||
|
||||
# Remove old
|
||||
s = "no_op"
|
||||
C-s = "no_op"
|
||||
H = "no_op"
|
||||
j = "no_op"
|
||||
J = "no_op"
|
||||
C-j = "no_op"
|
||||
k = "no_op"
|
||||
K = "no_op"
|
||||
C-k = "no_op"
|
||||
l = "no_op"
|
||||
L = "no_op"
|
||||
C-l = "no_op"
|
||||
|
||||
[keys.normal."space"]
|
||||
h = "hover"
|
||||
k = "select_references_to_symbol_under_cursor"
|
||||
|
||||
[editor]
|
||||
bufferline = "always"
|
||||
auto-save = true
|
||||
line-number = "relative"
|
||||
cursorline = true
|
||||
cursorcolumn = true
|
||||
color-modes = true
|
||||
text-width = 120
|
||||
auto-format = true
|
||||
|
||||
[editor.statusline]
|
||||
left = ["mode", "spinner", "version-control"]
|
||||
center = ["file-name"]
|
||||
mode.normal = "Normal"
|
||||
mode.insert = "Insert"
|
||||
mode.select = "Select"
|
||||
|
||||
[editor.indent-guides]
|
||||
render = true
|
||||
|
||||
[editor.lsp]
|
||||
display-messages = true
|
||||
display-inlay-hints = false
|
||||
|
||||
[editor.cursor-shape]
|
||||
insert = "bar"
|
||||
normal = "block"
|
||||
select = "underline"
|
||||
|
||||
[editor.file-picker]
|
||||
hidden = false
|
||||
|
||||
[editor.whitespace.render]
|
||||
space = "all"
|
||||
tab = "all"
|
||||
tabpad = "all"
|
||||
newline = "none"
|
||||
nbsp = "none"
|
||||
|
||||
[editor.whitespace.characters]
|
||||
space = "·"
|
||||
tab = "⇀"
|
||||
tabpad = " "
|
||||
|
||||
|
||||
#w = "move_line_up" # Maps the 'w' key move_line_up
|
||||
#"C-S-esc" = "extend_line" # Maps Ctrl-Shift-Escape to extend_line
|
||||
#g = { a = "code_action" } # Maps `ga` to show possible code actions
|
||||
#"ret" = ["open_below", "normal_mode"] # Maps the enter key to open_below then re-enter normal mode
|
@ -1,112 +0,0 @@
|
||||
###
|
||||
### Configuration for LSP-AI
|
||||
###
|
||||
### Link here:
|
||||
### https://github.com/SilasMarvin/lsp-ai
|
||||
###
|
||||
|
||||
[language-server.lsp-ai]
|
||||
command = "lsp-ai"
|
||||
|
||||
[language-server.lsp-ai.config.memory]
|
||||
file_store = { }
|
||||
|
||||
[language-server.lsp-ai.config.models.sonnet]
|
||||
type = "anthropic"
|
||||
chat_endpoint = "https://api.anthropic.com/v1/messages"
|
||||
model = "claude-3-5-sonnet-20241022"
|
||||
auth_token_env_var_name = "ANTHROPIC_API_KEY"
|
||||
|
||||
[language-server.lsp-ai.config.models.haiku]
|
||||
type = "anthropic"
|
||||
chat_endpoint = "https://api.anthropic.com/v1/messages"
|
||||
model = "claude-3-5-haiku-20241022"
|
||||
auth_token_env_var_name = "ANTHROPIC_API_KEY"
|
||||
|
||||
[[language-server.lsp-ai.config.chat]]
|
||||
trigger = "!C"
|
||||
action_display_name = "Chat (Sonnet )"
|
||||
model = "sonnet"
|
||||
parameters = { max_context = 4096, max_tokens = 4096, system = "You are a code assistant chatbot. The user will ask you for assistance coding and you will do you best to answer succinctly and accurately" }
|
||||
|
||||
[[language-server.lsp-ai.config.chat]]
|
||||
trigger = "!C"
|
||||
action_display_name = "Chat (Haiku )"
|
||||
model = "haiku"
|
||||
parameters = { max_context = 4096, max_tokens = 4096, system = "You are a code assistant chatbot. The user will ask you for assistance coding and you will do you best to answer succinctly and accurately" }
|
||||
|
||||
[[language-server.lsp-ai.config.actions]]
|
||||
action_display_name = "Complete (Sonnet )"
|
||||
model = "sonnet"
|
||||
parameters = { max_context = 4096, max_tokens = 4096, messages = [{ role = "user", content = "{CODE}" }], system = "You are an AI coding assistant. Your task is to complete code snippets. The user's cursor position is marked by \"<CURSOR>\". Follow these steps:\n\n1. Analyze the code context and the cursor position.\n2. Provide your chain of thought reasoning, wrapped in <reasoning> tags. Include thoughts about the cursor position, what needs to be completed, and any necessary formatting.\n3. Determine the appropriate code to complete the current thought, including finishing partial words or lines.\n4. Replace \"<CURSOR>\" with the necessary code, ensuring proper formatting and line breaks.\n5. Wrap your code solution in <answer> tags.\n\nYour response should always include both the reasoning and the answer. Pay special attention to completing partial words or lines before adding new lines of code.\n\n<examples>\n<example>\nUser input:\n--main.py--\n# A function that reads in user inpu<CURSOR>\n\nResponse:\n<reasoning>\n1. The cursor is positioned after \"inpu\" in a comment describing a function that reads user input.\n2. We need to complete the word \"input\" in the comment first.\n3. After completing the comment, we should add a new line before defining the function.\n4. The function should use Python's built-in `input()` function to read user input.\n5. We'll name the function descriptively and include a return statement.\n</reasoning>\n\n<answer>t\ndef read_user_input():\n user_input = input(\"Enter your input: \")\n return user_input\n</answer>\n</example>\n\n<example>\nUser input:\n--main.py--\ndef fibonacci(n):\n if n <= 1:\n return n\n else:\n re<CURSOR>\n\n\nResponse:\n<reasoning>\n1. The cursor is positioned after \"re\" in the 'else' clause of a recursive Fibonacci function.\n2. We need to complete the return statement for the recursive case.\n3. The \"re\" already present likely stands for \"return\", so we'll continue from there.\n4. The Fibonacci sequence is the sum of the two preceding numbers.\n5. We should return the sum of fibonacci(n-1) and fibonacci(n-2).\n</reasoning>\n\n<answer>turn fibonacci(n-1) + fibonacci(n-2)</answer>\n</example>\n</examples>"}
|
||||
post_process = { extractor = "(?s)<answer>(.*?)</answer>" }
|
||||
|
||||
|
||||
[[language-server.lsp-ai.config.actions]]
|
||||
action_display_name = "Complete (Haiku )"
|
||||
model = "haiku"
|
||||
parameters = { max_context = 4096, max_tokens = 4096, messages = [{ role = "user", content = "{CODE}" }], system = "You are an AI coding assistant. Your task is to complete code snippets. The user's cursor position is marked by \"<CURSOR>\". Follow these steps:\n\n1. Analyze the code context and the cursor position.\n2. Provide your chain of thought reasoning, wrapped in <reasoning> tags. Include thoughts about the cursor position, what needs to be completed, and any necessary formatting.\n3. Determine the appropriate code to complete the current thought, including finishing partial words or lines.\n4. Replace \"<CURSOR>\" with the necessary code, ensuring proper formatting and line breaks.\n5. Wrap your code solution in <answer> tags.\n\nYour response should always include both the reasoning and the answer. Pay special attention to completing partial words or lines before adding new lines of code.\n\n<examples>\n<example>\nUser input:\n--main.py--\n# A function that reads in user inpu<CURSOR>\n\nResponse:\n<reasoning>\n1. The cursor is positioned after \"inpu\" in a comment describing a function that reads user input.\n2. We need to complete the word \"input\" in the comment first.\n3. After completing the comment, we should add a new line before defining the function.\n4. The function should use Python's built-in `input()` function to read user input.\n5. We'll name the function descriptively and include a return statement.\n</reasoning>\n\n<answer>t\ndef read_user_input():\n user_input = input(\"Enter your input: \")\n return user_input\n</answer>\n</example>\n\n<example>\nUser input:\n--main.py--\ndef fibonacci(n):\n if n <= 1:\n return n\n else:\n re<CURSOR>\n\n\nResponse:\n<reasoning>\n1. The cursor is positioned after \"re\" in the 'else' clause of a recursive Fibonacci function.\n2. We need to complete the return statement for the recursive case.\n3. The \"re\" already present likely stands for \"return\", so we'll continue from there.\n4. The Fibonacci sequence is the sum of the two preceding numbers.\n5. We should return the sum of fibonacci(n-1) and fibonacci(n-2).\n</reasoning>\n\n<answer>turn fibonacci(n-1) + fibonacci(n-2)</answer>\n</example>\n</examples>"}
|
||||
post_process = { extractor = "(?s)<answer>(.*?)</answer>" }
|
||||
|
||||
[[language-server.lsp-ai.config.actions]]
|
||||
action_display_name = "Refactor (Sonnet )"
|
||||
model = "sonnet"
|
||||
parameters = { max_context = 4096, max_tokens = 4096, messages = [{ role = "user", content = "{SELECTED_TEXT}" }], system = "You are an AI coding assistant specializing in code refactoring. Your task is to analyze the given code snippet and provide a refactored version. Follow these steps:\n\n1. Analyze the code context and structure.\n2. Identify areas for improvement, such as code efficiency, readability, or adherence to best practices.\n3. Provide your chain of thought reasoning, wrapped in <reasoning> tags. Include your analysis of the current code and explain your refactoring decisions.\n4. Rewrite the entire code snippet with your refactoring applied.\n5. Wrap your refactored code solution in <answer> tags.\n\nYour response should always include both the reasoning and the refactored code.\n\n<examples>\n<example>\nUser input:\ndef calculate_total(items):\n total = 0\n for item in items:\n total = total + item['price'] * item['quantity']\n return total\n\n\nResponse:\n<reasoning>\n1. The function calculates the total cost of items based on price and quantity.\n2. We can improve readability and efficiency by:\n a. Using a more descriptive variable name for the total.\n b. Utilizing the sum() function with a generator expression.\n c. Using augmented assignment (+=) if we keep the for loop.\n3. We'll implement the sum() function approach for conciseness.\n4. We'll add a type hint for better code documentation.\n</reasoning>\n<answer>\nfrom typing import List, Dict\n\ndef calculate_total(items: List[Dict[str, float]]) -> float:\n return sum(item['price'] * item['quantity'] for item in items)\n</answer>\n</example>\n\n<example>\nUser input:\ndef is_prime(n):\n if n < 2:\n return False\n for i in range(2, n):\n if n % i == 0:\n return False\n return True\n\n\nResponse:\n<reasoning>\n1. This function checks if a number is prime, but it's not efficient for large numbers.\n2. We can improve it by:\n a. Adding an early return for 2, the only even prime number.\n b. Checking only odd numbers up to the square root of n.\n c. Using a more efficient range (start at 3, step by 2).\n3. We'll also add a type hint for better documentation.\n4. The refactored version will be more efficient for larger numbers.\n</reasoning>\n<answer>\nimport math\n\ndef is_prime(n: int) -> bool:\n if n < 2:\n return False\n if n == 2:\n return True\n if n % 2 == 0:\n return False\n \n for i in range(3, int(math.sqrt(n)) + 1, 2):\n if n % i == 0:\n return False\n return True\n</answer>\n</example>\n</examples>" }
|
||||
post_process = { extractor = "(?s)<answer>(.*?)</answer>" }
|
||||
|
||||
[[language-server.lsp-ai.config.actions]]
|
||||
action_display_name = "Refactor (Haiku )"
|
||||
model = "haiku"
|
||||
parameters = { max_context = 4096, max_tokens = 4096, messages = [{ role = "user", content = "{SELECTED_TEXT}" }], system = "You are an AI coding assistant specializing in code refactoring. Your task is to analyze the given code snippet and provide a refactored version. Follow these steps:\n\n1. Analyze the code context and structure.\n2. Identify areas for improvement, such as code efficiency, readability, or adherence to best practices.\n3. Provide your chain of thought reasoning, wrapped in <reasoning> tags. Include your analysis of the current code and explain your refactoring decisions.\n4. Rewrite the entire code snippet with your refactoring applied.\n5. Wrap your refactored code solution in <answer> tags.\n\nYour response should always include both the reasoning and the refactored code.\n\n<examples>\n<example>\nUser input:\ndef calculate_total(items):\n total = 0\n for item in items:\n total = total + item['price'] * item['quantity']\n return total\n\n\nResponse:\n<reasoning>\n1. The function calculates the total cost of items based on price and quantity.\n2. We can improve readability and efficiency by:\n a. Using a more descriptive variable name for the total.\n b. Utilizing the sum() function with a generator expression.\n c. Using augmented assignment (+=) if we keep the for loop.\n3. We'll implement the sum() function approach for conciseness.\n4. We'll add a type hint for better code documentation.\n</reasoning>\n<answer>\nfrom typing import List, Dict\n\ndef calculate_total(items: List[Dict[str, float]]) -> float:\n return sum(item['price'] * item['quantity'] for item in items)\n</answer>\n</example>\n\n<example>\nUser input:\ndef is_prime(n):\n if n < 2:\n return False\n for i in range(2, n):\n if n % i == 0:\n return False\n return True\n\n\nResponse:\n<reasoning>\n1. This function checks if a number is prime, but it's not efficient for large numbers.\n2. We can improve it by:\n a. Adding an early return for 2, the only even prime number.\n b. Checking only odd numbers up to the square root of n.\n c. Using a more efficient range (start at 3, step by 2).\n3. We'll also add a type hint for better documentation.\n4. The refactored version will be more efficient for larger numbers.\n</reasoning>\n<answer>\nimport math\n\ndef is_prime(n: int) -> bool:\n if n < 2:\n return False\n if n == 2:\n return True\n if n % 2 == 0:\n return False\n \n for i in range(3, int(math.sqrt(n)) + 1, 2):\n if n % i == 0:\n return False\n return True\n</answer>\n</example>\n</examples>" }
|
||||
post_process = { extractor = "(?s)<answer>(.*?)</answer>" }
|
||||
|
||||
###
|
||||
### Configuration for languages
|
||||
###
|
||||
|
||||
[[language]]
|
||||
name = "go"
|
||||
language-servers = ["gopls", "lsp-ai"]
|
||||
|
||||
[[language]]
|
||||
name = "markdown"
|
||||
language-servers = ["marksman", "lsp-ai"]
|
||||
|
||||
# Change dart format to 120 lines
|
||||
[[language]]
|
||||
name = "dart"
|
||||
formatter = {command = "dart", args = ["format", "-l", "120"]}
|
||||
language-servers = ["dart", "lsp-ai"]
|
||||
|
||||
[[language]]
|
||||
name = "zig"
|
||||
language-servers = ["zls", "lsp-ai"]
|
||||
|
||||
[language.debugger]
|
||||
name = "codelldb-dap"
|
||||
transport = "tcp"
|
||||
command = "codelldb"
|
||||
args = []
|
||||
port-arg = "--port {}"
|
||||
|
||||
[[language.debugger.templates]]
|
||||
name = "launch"
|
||||
request = "launch"
|
||||
completion = [ { name = "binary", completion = "filename" } ]
|
||||
args = { console = "internalConsole", program = "{0}" }
|
||||
|
||||
[[language.debugger.templates]]
|
||||
name = "attach"
|
||||
request = "attach"
|
||||
completion = [ "pid" ]
|
||||
args = { console = "internalConsole", pid = "{0}" }
|
||||
|
||||
[[language.debugger.templates]]
|
||||
name = "gdbserver attach"
|
||||
request = "attach"
|
||||
completion = [ { name = "lldb connect url", default = "connect://localhost:3333" }, { name = "file", completion = "filename" }, "pid" ]
|
||||
args = { console = "internalConsole", attachCommands = [ "platform select remote-gdb-server", "platform connect {0}", "file {1}", "attach {2}" ] }
|
||||
|
||||
[[language]]
|
||||
name = "nix"
|
||||
language-servers = ["nil", "lsp-ai"]
|
@ -1,10 +0,0 @@
|
||||
general {
|
||||
lock_cmd = swaylock # dbus/sysd lock command (loginctl lock-session)
|
||||
before_sleep_cmd = swaylock
|
||||
ignore_dbus_inhibit = false
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600 # in seconds
|
||||
on-timeout = swaylock -C ~/.config/swaylock/idle-config # command to run when timeout has passed
|
||||
}
|
Before ![]() (image error) Size: 376 KiB |
@ -1,6 +0,0 @@
|
||||
https://www.youtube.com/watch?v=484RgaL990c
|
||||
https://www.youtube.com/watch?v=6OGp_lZT2tM
|
||||
https://www.youtube.com/watch?v=tIsiYbJLwIg
|
||||
https://www.youtube.com/watch?v=pKw6s8w9rAI
|
||||
https://www.youtube.com/watch?v=lFuErjQKoYg
|
||||
https://www.youtube.com/@Denz1000
|
@ -1,21 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
hyprctl dispatch togglespecialworkspace music
|
||||
|
||||
YT_LINK=$(sort -R < ~/.config/hypr/scripts/music_links.txt | head -n 1)
|
||||
|
||||
firefox --new-window "$YT_LINK" &
|
||||
sleep 1
|
||||
hyprctl dispatch togglefloating
|
||||
hyprctl dispatch movewindow u
|
||||
hyprctl dispatch movewindow l
|
||||
hyprctl dispatch resizeactive exact 45% 45%
|
||||
hyprctl dispatch moveactive 30% 5%
|
||||
|
||||
ghostty ~/.config/hypr/scripts/music_setup_cmd.sh &
|
||||
sleep 1
|
||||
hyprctl dispatch togglefloating
|
||||
hyprctl dispatch resizeactive exact 95% 30%
|
||||
hyprctl dispatch movewindow d
|
||||
hyprctl dispatch movewindow l
|
||||
hyprctl dispatch moveactive -- 30 -5%
|
@ -1,4 +0,0 @@
|
||||
#! /usr/bin/env sh
|
||||
|
||||
sleep 1
|
||||
cava
|
@ -1,35 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
entries="Screen Window Area Area+Edit"
|
||||
|
||||
selected=$(printf '%s\n' "$entries" | tr ' ' '\n' | wofi --style="$HOME"/.config/wofi/macc_style.css --conf="$HOME"/.config/wofi/config.screenshot | awk '{print tolower($1)}')
|
||||
|
||||
if [ "$1" == "clipboard" ]; then
|
||||
case $selected in
|
||||
screen)
|
||||
hyprshot --notif-timeout 2000 -m output --clipboard-only;;
|
||||
window)
|
||||
hyprshot --notif-timeout 2000 -m window --clipboard-only;;
|
||||
area)
|
||||
hyprshot --notif-timeout 2000 -m region --clipboard-only;;
|
||||
area+edit)
|
||||
hyprshot --notif-timeout 2000 -m region --clipboard-only
|
||||
sleep 0.1
|
||||
flatpak run com.github.maoschanz.drawing -c
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case $selected in
|
||||
screen)
|
||||
hyprshot --notif-timeout 2000 -m output -o ~/Pictures/;;
|
||||
window)
|
||||
hyprshot --notif-timeout 2000 -m window -o ~/Pictures/;;
|
||||
area)
|
||||
hyprshot --notif-timeout 2000 -m region -o ~/Pictures/;;
|
||||
area+edit)
|
||||
hyprshot --notif-timeout 2000 -m region --clipboard-only
|
||||
sleep 0.1
|
||||
flatpak run com.github.maoschanz.drawing -c
|
||||
;;
|
||||
esac
|
||||
fi
|
Before ![]() (image error) Size: 2.7 MiB |