Compare commits
107 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
3f38bafaf2 | ||
|
c3dd6cb27e | ||
|
353f9e388f | ||
|
abd2e63e20 | ||
|
79e0b3484e | ||
|
fd32b3f2eb | ||
|
6d46c769fd | ||
|
f8812c081b | ||
|
ecdab71a09 | ||
63500cd8cc | |||
620a030a16 | |||
6ea78a2477 | |||
3fa2999834 | |||
|
b14b22dd98 | ||
|
a175907ba6 | ||
|
052405ba92 | ||
0d6995657a | |||
|
90917e6e9d | ||
183082a99b | |||
45b51a3e85 | |||
|
7ee5a65d0c | ||
178f33dfe4 | |||
973f54c6bd | |||
71513e2a8a | |||
a177448997 | |||
7bf7df6000 | |||
8dfbd75747 | |||
9598efa9b0 | |||
d8e19f45a8 | |||
4ba888bc9e | |||
cc8add034d | |||
82b87e3e13 | |||
90275dc0cd | |||
25901043df | |||
4100a0821b | |||
14a13e840a | |||
9f0d61d7e7 | |||
73a9435587 | |||
8ba54ca386 | |||
f91bea3334 | |||
63d8d1ceb9 | |||
b1bdee6fd4 | |||
2e2312fab7 | |||
49de25db5a | |||
925f96b4d1 | |||
9ec123f0f2 | |||
412f9100ca | |||
0f0280473f | |||
45d9cadc71 | |||
1e02aaf73d | |||
351fa72260 | |||
db8579c6c0 | |||
ae7ba60036 | |||
eae8f61a59 | |||
5838527b6c | |||
6183e24f9a | |||
47629ac5df | |||
b6cbe22d7a | |||
0a7738b8cd | |||
286bb64d95 | |||
a81ea65340 | |||
918d5ea085 | |||
c616655b97 | |||
8e42d4f55d | |||
0ef91f571d | |||
2faacde406 | |||
f53a34b2e7 | |||
90b8d36143 | |||
3d71ee0bf8 | |||
4f8c9c85aa | |||
44fe27911a | |||
f444961d8e | |||
410fa99aff | |||
c65c49fbb8 | |||
bafcb6cb21 | |||
fad66ef62d | |||
77dfec308e | |||
dcff7d9db4 | |||
f24abf52e2 | |||
d1facb3be7 | |||
2f9f07b3e0 | |||
6c392b49ea | |||
4debc5d78c | |||
d7a2371938 | |||
e7fc91cb3e | |||
87364629fa | |||
b73cad9444 | |||
5625ad83d9 | |||
ba4e1700e9 | |||
55618f4f1a | |||
85f0a2359b | |||
620c6f83d6 | |||
|
efbd44ca4b | ||
a9d67fd51f | |||
|
57936b7890 | ||
4195ef4e3a | |||
cc56993ec5 | |||
18a7fb90e9 | |||
|
576722233a | ||
e9663453f8 | |||
1ae71eba14 | |||
c4f0a374b2 | |||
3652381567 | |||
2bb838aef4 | |||
f4e35e83ef | |||
29626f89b2 | |||
379f672586 |
@ -1,86 +0,0 @@
|
||||
# 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
|
@ -1,18 +0,0 @@
|
||||
#!/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
|
@ -1,15 +0,0 @@
|
||||
#!/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' }'
|
||||
|
||||
|
||||
|
@ -1,21 +0,0 @@
|
||||
|
||||
#!/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,2 +0,0 @@
|
||||
#!/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"
|
@ -1,13 +0,0 @@
|
||||
#!/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' }'
|
||||
|
@ -1,219 +0,0 @@
|
||||
/* =============================================================================
|
||||
*
|
||||
* 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;
|
||||
}
|
158
flake.lock
generated
@ -1,40 +1,41 @@
|
||||
{
|
||||
"nodes": {
|
||||
"firefox-addons": {
|
||||
"catppuccin": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737579274,
|
||||
"narHash": "sha256-8kBIYfn8TI9jbffhDNS12SdbQHb9ITXflwcgIJBeGqw=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "06f0ea19334bcc8112e6d671fd53e61f9e3ad63a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1702612985,
|
||||
"narHash": "sha256-dnlw/lHJO2Fk/jUHzkz4dYKHF4nQxmHps9Jx8zldoo4=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "ae18cb76153e8dda888a313daac932ba358002ae",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1629284811,
|
||||
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c",
|
||||
"lastModified": 1733312601,
|
||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@ -45,26 +46,43 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1702538064,
|
||||
"narHash": "sha256-At5GwJPu2tzvS9dllhBoZmqK6lkkh/sOp2YefWRlaL8=",
|
||||
"lastModified": 1736373539,
|
||||
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "0e2e443ff24f9d75925e91b89d1da44b863734af",
|
||||
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1702312524,
|
||||
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
|
||||
"lastModified": 1736012469,
|
||||
"narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1738410390,
|
||||
"narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
|
||||
"rev": "3a228057f5b619feb3186e986dbe76278d707b6e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -74,28 +92,86 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1702346276,
|
||||
"narHash": "sha256-eAQgwIWApFQ40ipeOjVSoK4TEHVd6nbSd9fApiHIw5A=",
|
||||
"lastModified": 1738435198,
|
||||
"narHash": "sha256-5+Hmo4nbqw8FrW85FlNm4IIrRnZ7bn0cmXlScNsNRLo=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cf28ee258fd5f9a52de6b9865cdb93a1f96d09b7",
|
||||
"rev": "f6687779bf4c396250831aa5a32cbfeb85bb07a3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-23.11",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1738142207,
|
||||
"narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9d3ae807ebd2981d593cddd0080856873139aa40",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1738362438,
|
||||
"narHash": "sha256-EO2dVkMVLThWqv4hobEZEZGWBEuH2Z9SYqQDrbLSclU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "95ddad0ff0e67c90314c6ca46324dce5f9a910d2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"firefox-addons": "firefox-addons",
|
||||
"catppuccin": "catppuccin",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
129
flake.nix
@ -2,61 +2,120 @@
|
||||
description = "NixOS system flake.";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";
|
||||
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
firefox-addons = {
|
||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
nur.url = "github:nix-community/NUR";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixpkgs-stable, home-manager, ... } @ inputs:
|
||||
outputs = { self, nixpkgs, nixpkgs-unstable, catppuccin, 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};
|
||||
stablePkgs = nixpkgs-stable.legacyPackages.${system};
|
||||
unstablePkgs = import nixpkgs-unstable { system = system; config = { allowUnfree = true; }; };
|
||||
# pkgs23 = import nixpkgs-23 { system = system; config = { allowUnfree = true; }; };
|
||||
in
|
||||
{
|
||||
|
||||
nixosConfigurations = {
|
||||
nixServer = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./nixos/server_configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
];
|
||||
};
|
||||
nixDesktop = nixpkgs.lib.nixosSystem {
|
||||
# Pass args to desktop configuration
|
||||
nixosConfigurations = {
|
||||
luci = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit inputs outputs userName hostName desktop timeZone gaming;
|
||||
inherit inputs outputs timeZone system;
|
||||
};
|
||||
modules = [
|
||||
./nixos/desktop_configuration.nix
|
||||
# Setup home manager
|
||||
home-manager.nixosModules.home-manager {
|
||||
inputs.home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.${userName} = import ./modules/home-manager/home.nix;
|
||||
home-manager.users.luci = import ./luci/modules/home-manager/home.nix;
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs outputs userName fullName email hostName desktop gaming;
|
||||
inherit inputs outputs;
|
||||
};
|
||||
}
|
||||
./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
|
||||
];
|
||||
};
|
||||
};
|
||||
|
39
jaci/default.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{ 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;
|
||||
}
|
94
jaci/desktop-configuration.nix
Normal file
@ -0,0 +1,94 @@
|
||||
{ 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?
|
||||
};
|
||||
}
|
||||
|
169
jaci/dotfiles/helix/config.toml
Normal file
@ -0,0 +1,169 @@
|
||||
# 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
|
4
jaci/dotfiles/helix/languages.toml
Normal file
@ -0,0 +1,4 @@
|
||||
# Change dart format to 120 lines
|
||||
[[language]]
|
||||
name = "dart"
|
||||
formatter = {command = "dart", args = ["format", "-l", "120"]}
|
3
jaci/dotfiles/kanshi/config
Normal file
@ -0,0 +1,3 @@
|
||||
profile {
|
||||
output DP-2 position 0,0 mode 1920x1080@165.003006Hz
|
||||
}
|
21
jaci/dotfiles/labwc/autostart
Normal file
@ -0,0 +1,21 @@
|
||||
# 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 &
|
BIN
jaci/dotfiles/labwc/backgrounds/cat1.jpg
Normal file
After Width: | Height: | Size: 42 KiB |
14
jaci/dotfiles/labwc/environment
Normal file
@ -0,0 +1,14 @@
|
||||
# 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
|
77
jaci/dotfiles/labwc/menu.xml
Normal file
@ -0,0 +1,77 @@
|
||||
|
||||
<?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>
|
536
jaci/dotfiles/labwc/rc.xml
Normal file
@ -0,0 +1,536 @@
|
||||
|
||||
<?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>
|
70
jaci/dotfiles/labwc/themerc-override
Normal file
@ -0,0 +1,70 @@
|
||||
# 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
|
88
jaci/dotfiles/waybar/config
Normal file
@ -0,0 +1,88 @@
|
||||
{
|
||||
"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
|
||||
},
|
||||
}
|
100
jaci/dotfiles/waybar/style.css
Normal file
@ -0,0 +1,100 @@
|
||||
@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;
|
||||
}
|
66
jaci/modules/apps/firefox/firefox.nix
Normal file
@ -0,0 +1,66 @@
|
||||
{lib, config, pkgs, inputs, ...}:
|
||||
let
|
||||
cfg = config.firefoxApp;
|
||||
in
|
||||
{
|
||||
# imports = [
|
||||
# inputs.nur.hmModules.nur
|
||||
# ];
|
||||
|
||||
options.firefoxApp = {
|
||||
enable = lib.mkEnableOption "enable firefox browser";
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles = {
|
||||
default = {
|
||||
id = 0;
|
||||
name = "default";
|
||||
isDefault = true;
|
||||
extensions = with pkgs; [
|
||||
nur.repos.rycee.firefox-addons.darkreader
|
||||
nur.repos.rycee.firefox-addons.keepassxc-browser
|
||||
nur.repos.crazazy.firefox-addons.ublock-origin
|
||||
];
|
||||
search = {
|
||||
# Replace default firefox search engine config with this one
|
||||
force = true;
|
||||
default = "Startpage";
|
||||
engines = {
|
||||
"Startpage" = {
|
||||
urls = [{
|
||||
template = "https://www.startpage.com/sp/search?query={searchTerms}";
|
||||
}];
|
||||
};
|
||||
};
|
||||
};
|
||||
settings = {
|
||||
"browser.startup.blankWindow" = true;
|
||||
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
|
||||
"browser.search.region" = "US";
|
||||
"browser.search.isUS" = true;
|
||||
"distribution.searchplugins.defaultLocale" = "en-US";
|
||||
"general.useragent.locale" = "en-US";
|
||||
"extensions.activeThemeID" = "{831b8843-7251-4306-9521-e688f18b4aeb}";
|
||||
"privacy.trackingprotection.enable" = true;
|
||||
"privacy.trackingprotection.emailtracking.enable" = true;
|
||||
"privacy.trackingprotection.socialtracking.enable" = true;
|
||||
"privacy.clearOnShutdown.cookies" = true;
|
||||
"browser.safebrowsing.passwords.enabled" = false;
|
||||
"browser.migrate.interactions.passwords" = false;
|
||||
"pref.privacy.disable_button.view_passwords" = false;
|
||||
"signon.rememberSignon" = false;
|
||||
"extensions.formautofill.creditCards.enabled" = false;
|
||||
"extensions.formautofill.addresses.enabled" = false;
|
||||
# "browser.bookmarks.showMobileBookmarks" = true;
|
||||
# "browser.newtabpage.pinned" = [{
|
||||
# title = "NixOS";
|
||||
# url = "https://nixos.org";
|
||||
# }];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
135
jaci/modules/home-manager/home.nix
Normal file
@ -0,0 +1,135 @@
|
||||
{ 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
161
jaci/modules/labwc/labwc_conf.nix
Normal file
@ -0,0 +1,161 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.labwc = {
|
||||
enable = lib.mkEnableOption "Enable labwc window manager.";
|
||||
useNonFree = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Whether to enable non-free software in the labwc config";
|
||||
};
|
||||
installGaming = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Whether to install gaming software on the system.";
|
||||
};
|
||||
systemPackages = lib.mkOption {
|
||||
default = [];
|
||||
description = "Add any additional packages desired. Merged with labwc defaults.";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
###
|
||||
## Configuration
|
||||
###
|
||||
config = lib.mkIf config.labwc.enable {
|
||||
|
||||
programs.dconf.enable = true;
|
||||
|
||||
nixpkgs.config.allowUnfree = config.labwc.useNonFree;
|
||||
# For R2ModMan
|
||||
# nixpkgs.config.permittedInsecurePackages = [
|
||||
# "electron-25.9.0"
|
||||
# ];
|
||||
|
||||
###
|
||||
## XDG portal setup
|
||||
###
|
||||
xdg.portal = {
|
||||
config = {
|
||||
common = {
|
||||
default = [
|
||||
"wlr"
|
||||
];
|
||||
};
|
||||
};
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
wlr.enable = true;
|
||||
enable = true;
|
||||
};
|
||||
xdg.sounds.enable = true;
|
||||
|
||||
###
|
||||
## System Packages
|
||||
###
|
||||
environment.systemPackages = with pkgs; lib.lists.flatten [
|
||||
[
|
||||
bash
|
||||
foot
|
||||
git
|
||||
glib
|
||||
grim
|
||||
sway-contrib.grimshot
|
||||
ghostscript
|
||||
labwc
|
||||
libnotify
|
||||
kanshi
|
||||
mako
|
||||
spot
|
||||
networkmanagerapplet
|
||||
nwg-dock
|
||||
nwg-drawer
|
||||
nwg-look
|
||||
pavucontrol
|
||||
slurp
|
||||
swaylock
|
||||
swayidle
|
||||
swww
|
||||
wl-clipboard
|
||||
cliphist
|
||||
waybar
|
||||
wdisplays
|
||||
xdg-utils
|
||||
zsh
|
||||
]
|
||||
config.labwc.systemPackages
|
||||
# (lib.mkIf config.labwc.installGaming [
|
||||
# pkgs.lutris
|
||||
# ])
|
||||
];
|
||||
|
||||
# Thunar config
|
||||
programs.thunar = {
|
||||
enable = true;
|
||||
plugins = with pkgs.xfce; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
};
|
||||
programs.file-roller.enable = true;
|
||||
programs.xfconf.enable = true;
|
||||
|
||||
programs.zsh.enable = true;
|
||||
programs.steam.enable = config.labwc.installGaming;
|
||||
programs.gamemode.enable = true;
|
||||
|
||||
###
|
||||
## 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.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
###
|
||||
## Misc
|
||||
###
|
||||
# sound.enable = true;
|
||||
# Necessary for home-manager labwc setup
|
||||
security.polkit.enable = true;
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = rec {
|
||||
initial_session = {
|
||||
command = "${pkgs.labwc}/bin/labwc";
|
||||
user = "jaci";
|
||||
};
|
||||
default_session = initial_session;
|
||||
};
|
||||
};
|
||||
|
||||
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
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
@ -44,6 +44,8 @@ in
|
||||
cfg.userName
|
||||
"video"
|
||||
"audio"
|
||||
# For android
|
||||
"adbusers"
|
||||
];
|
||||
})
|
||||
];
|
@ -8,18 +8,18 @@
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "uas" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/e48c53a4-6e7d-4b12-a46e-a408956268ea";
|
||||
{ device = "/dev/disk/by-label/NIXROOT";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/82B2-9D40";
|
||||
{ device = "/dev/disk/by-label/NIXBOOT";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
@ -30,9 +30,8 @@
|
||||
# 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.enp1s0f0u2u1u4.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp11s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
3
jaci/notes.md
Normal file
@ -0,0 +1,3 @@
|
||||
- Need a way to access files
|
||||
- Remove boot logs and grub menu
|
||||
- Cant open steam and then open a web browser
|
@ -2,29 +2,25 @@
|
||||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config, lib, pkgs, inputs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
./modules/user/main_user.nix
|
||||
inputs.home-manager.nixosModules.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;
|
||||
|
||||
# networking.hostName = "nixos"; # Define your hostname.
|
||||
networking = {
|
||||
hostId = "09e1d908";
|
||||
hostName = "luci"; # Define your hostname.
|
||||
# Pick only one of the below networking options.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
# networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
};
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Denver";
|
||||
@ -43,10 +39,6 @@
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# services.xserver.enable = true;
|
||||
|
||||
|
||||
|
||||
|
||||
# Configure keymap in X11
|
||||
# services.xserver.xkb.layout = "us";
|
||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||||
@ -62,30 +54,17 @@
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
# users.users.nate = {
|
||||
# initialPassword = "password";
|
||||
# extraGroups = [ "wheel" ];
|
||||
# isNormalUser = true;
|
||||
# };
|
||||
|
||||
# Use main user module
|
||||
main_user.enable = true;
|
||||
main_user.userName = "natea";
|
||||
|
||||
# Sets up programs in /etc/profile instead of ~/.profile
|
||||
home-manager.useUserPackages = true;
|
||||
# Uses system nixpkgs instead of private, adds consistency and removes NIX_PATH dependency
|
||||
home-manager.useGlobalPkgs = true;
|
||||
|
||||
home-manager.users.nate = { pkgs, ... }: {
|
||||
programs.bash.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
users.users.luci = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||
packages = with pkgs; [
|
||||
firefox
|
||||
kakoune
|
||||
tree
|
||||
git
|
||||
curl
|
||||
nano
|
||||
neofetch
|
||||
];
|
||||
|
||||
home.stateVersion = "23.11";
|
||||
};
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
36
luci/default.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ ... }:
|
||||
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;
|
||||
}
|
166
luci/dotfiles/helix/config.toml
Normal file
@ -0,0 +1,166 @@
|
||||
# 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
|
93
luci/modules/home-manager/home.nix
Normal file
@ -0,0 +1,93 @@
|
||||
{ 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
luci/modules/radicale/rad_pass
Normal file
@ -0,0 +1 @@
|
||||
n8r:$apr1$HpSAv/EE$pCDM0qP2JJIY0B5aUXjS30
|
55
luci/nixos/hardware-configuration.nix
Normal file
@ -0,0 +1,55 @@
|
||||
# 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;
|
||||
}
|
@ -1,126 +0,0 @@
|
||||
{ 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.config.allowUnfree = true;
|
||||
# inputs.nixpkgs-stable.config.allowUnfree = true;
|
||||
|
||||
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.
|
||||
fonts.fontconfig.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
bat
|
||||
inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
|
||||
fd
|
||||
firefox
|
||||
foot
|
||||
fzf
|
||||
htop
|
||||
kakoune
|
||||
keepassxc
|
||||
libnotify
|
||||
mako
|
||||
networkmanagerapplet
|
||||
obs-studio
|
||||
signal-desktop
|
||||
# steam
|
||||
waybar
|
||||
wofi
|
||||
xfce.thunar
|
||||
# Install fonts
|
||||
(nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; })
|
||||
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";
|
||||
};
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
@ -1,117 +0,0 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
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 sway config";
|
||||
};
|
||||
installGaming = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Whether to install gaming software on the system.";
|
||||
};
|
||||
systemPackages = lib.mkOption {
|
||||
default = [];
|
||||
description = "Add any additional packages desired. Merged with sway defaults.";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = lib.mkIf config.swaywm.enable {
|
||||
|
||||
nixpkgs.config.allowUnfree = config.swaywm.useNonFree;
|
||||
|
||||
###
|
||||
## XDG portal setup
|
||||
###
|
||||
xdg.portal = {
|
||||
config = {
|
||||
common = {
|
||||
default = [
|
||||
"wlr"
|
||||
];
|
||||
};
|
||||
};
|
||||
extraPortals = with pkgs; [
|
||||
# xdg-desktop-portal-kde
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
wlr.enable = true;
|
||||
enable = true;
|
||||
};
|
||||
xdg.sounds.enable = true;
|
||||
|
||||
###
|
||||
## System Packages
|
||||
###
|
||||
environment.systemPackages = with pkgs; lib.lists.flatten [
|
||||
[
|
||||
git
|
||||
glib # gsettings
|
||||
grim
|
||||
pavucontrol
|
||||
slurp
|
||||
swaylock
|
||||
swayidle
|
||||
wl-clipboard
|
||||
xdg-utils
|
||||
zsh
|
||||
# Add to gaming only installs
|
||||
lutris
|
||||
wine-wayland
|
||||
# Video utils
|
||||
davinci-resolve-studio
|
||||
imv
|
||||
mpv
|
||||
gimp
|
||||
]
|
||||
config.swaywm.systemPackages
|
||||
# (lib.mkIf config.swaywm.installGaming [
|
||||
# pkgs.lutris
|
||||
# ])
|
||||
];
|
||||
|
||||
programs.zsh.enable = true;
|
||||
programs.steam.enable = config.swaywm.installGaming;
|
||||
|
||||
###
|
||||
## Services
|
||||
###
|
||||
services.openssh.enable = true;
|
||||
services.dbus.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# kdeconnect setup
|
||||
programs.kdeconnect.enable = true;
|
||||
|
||||
# Firewall
|
||||
# networking.firewall = {
|
||||
# enable = true;
|
||||
# allowedTCPPortRanges = [
|
||||
# {from = 1714; to = 1764;} # KDE Connnect
|
||||
# ];
|
||||
# allowedUDPPortRanges = [
|
||||
# {from = 1714; to = 1764;} # KDE Connnect
|
||||
# ];
|
||||
# };
|
||||
|
||||
###
|
||||
## Misc
|
||||
###
|
||||
sound.enable = true;
|
||||
# Necessary for home-manager sway setup
|
||||
security.polkit.enable = true;
|
||||
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
};
|
||||
|
||||
};
|
||||
}
|
52
nate-work/default.nix
Normal file
@ -0,0 +1,52 @@
|
||||
{ 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
|
||||
];
|
||||
|
||||
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";
|
||||
};
|
||||
|
||||
### TODO add these to security.nix file
|
||||
# Auto Update System
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
flake = inputs.self.outPath;
|
||||
flags = [
|
||||
"--update-input"
|
||||
"nixpkgs"
|
||||
"nixpkgs-unstable"
|
||||
"-L" # print build logs
|
||||
];
|
||||
dates = "05:00";
|
||||
randomizedDelaySec = "45min";
|
||||
};
|
||||
|
||||
services.clamav.daemon.enable = true;
|
||||
services.clamav.scanner.enable = true;
|
||||
|
||||
nix.settings.auto-optimise-store = true;
|
||||
}
|
91
nate-work/desktop-configuration.nix
Normal file
@ -0,0 +1,91 @@
|
||||
{ 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;
|
||||
|
||||
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?
|
||||
};
|
||||
}
|
||||
|
BIN
nate-work/dotfiles/Passwords.kdbx
Normal file
2059
nate-work/dotfiles/bat/themes/Catppuccin Macchiato.tmTheme
Normal file
2
nate-work/dotfiles/code-flags.conf
Normal file
@ -0,0 +1,2 @@
|
||||
--enable-features=UseOzonePlatform
|
||||
--ozone-platform=wayland
|
2
nate-work/dotfiles/electron-flags.conf
Normal file
@ -0,0 +1,2 @@
|
||||
--enable-features=UseOzonePlatform
|
||||
--ozone-platform=wayland
|
2
nate-work/dotfiles/electron12-flags.conf
Normal file
@ -0,0 +1,2 @@
|
||||
--enable-features=UseOzonePlatform
|
||||
--ozone-platform=wayland
|
45
nate-work/dotfiles/foot/foot.ini
Normal file
@ -0,0 +1,45 @@
|
||||
[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
|
46
nate-work/dotfiles/ghostty/config
Normal file
@ -0,0 +1,46 @@
|
||||
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
|
||||
|
||||
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
|
||||
copy-on-select=clipboard
|
170
nate-work/dotfiles/helix/config.toml
Normal file
@ -0,0 +1,170 @@
|
||||
# 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
|
112
nate-work/dotfiles/helix/languages.toml
Normal file
@ -0,0 +1,112 @@
|
||||
###
|
||||
### 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"]
|
10
nate-work/dotfiles/hypr/hypridle.conf
Normal file
@ -0,0 +1,10 @@
|
||||
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
|
||||
}
|
BIN
nate-work/dotfiles/hypr/nix.png
Normal file
After Width: | Height: | Size: 376 KiB |
6
nate-work/dotfiles/hypr/scripts/music_links.txt
Normal file
@ -0,0 +1,6 @@
|
||||
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
|
21
nate-work/dotfiles/hypr/scripts/music_setup.sh
Executable file
@ -0,0 +1,21 @@
|
||||
#! /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%
|
4
nate-work/dotfiles/hypr/scripts/music_setup_cmd.sh
Executable file
@ -0,0 +1,4 @@
|
||||
#! /usr/bin/env sh
|
||||
|
||||
sleep 1
|
||||
cava
|
35
nate-work/dotfiles/hypr/scripts/screenshot.sh
Executable file
@ -0,0 +1,35 @@
|
||||
#!/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
|
BIN
nate-work/dotfiles/hypr/va_background.png
Normal file
After Width: | Height: | Size: 2.7 MiB |
447
nate-work/dotfiles/kak-lsp/kak-lsp.toml
Normal file
@ -0,0 +1,447 @@
|
||||
snippet_support = true
|
||||
verbosity = 2
|
||||
|
||||
[server]
|
||||
# exit session if no requests were received during given period in seconds
|
||||
# set to 0 to disable
|
||||
timeout = 1800 # seconds = 30 minutes
|
||||
|
||||
[language.bash]
|
||||
filetypes = ["sh"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "bash-language-server"
|
||||
args = ["start"]
|
||||
|
||||
[language.c_cpp]
|
||||
filetypes = ["c", "cpp"]
|
||||
roots = ["compile_commands.json", ".clangd", ".git", ".hg"]
|
||||
command = "clangd"
|
||||
|
||||
[language.clojure]
|
||||
filetypes = ["clojure"]
|
||||
roots = ["project.clj", ".git", ".hg"]
|
||||
command = "clojure-lsp"
|
||||
settings_section = "_"
|
||||
[language.clojure.settings._]
|
||||
# See https://clojure-lsp.io/settings/#all-settings
|
||||
# source-paths-ignore-regex = ["resources.*", "target.*"]
|
||||
|
||||
[language.cmake]
|
||||
filetypes = ["cmake"]
|
||||
roots = ["CMakeLists.txt", ".git", ".hg"]
|
||||
command = "cmake-language-server"
|
||||
|
||||
[language.crystal]
|
||||
filetypes = ["crystal"]
|
||||
roots = ["shard.yml"]
|
||||
command = "crystalline"
|
||||
|
||||
[language.css]
|
||||
filetypes = ["css"]
|
||||
roots = ["package.json", ".git", ".hg"]
|
||||
command = "vscode-css-languageserver"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.less]
|
||||
filetypes = ["less"]
|
||||
roots = ["package.json", ".git", ".hg"]
|
||||
command = "vscode-css-languageserver"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.scss]
|
||||
filetypes = ["scss"]
|
||||
roots = ["package.json", ".git", ".hg"]
|
||||
command = "vscode-css-languageserver"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.d]
|
||||
filetypes = ["d", "di"]
|
||||
roots = [".git", "dub.sdl", "dub.json"]
|
||||
command = "dls"
|
||||
|
||||
[language.dart]
|
||||
# start shell to find path to dart analysis server source
|
||||
filetypes = ["dart"]
|
||||
roots = ["pubspec.yaml", ".git", ".hg"]
|
||||
command = "dart"
|
||||
args = ["language-server"]
|
||||
[language.dart.settings.dart]
|
||||
lineLength = 120
|
||||
|
||||
[language.elixir]
|
||||
filetypes = ["elixir"]
|
||||
roots = ["mix.exs"]
|
||||
command = "elixir-ls"
|
||||
settings_section = "elixirLS"
|
||||
[language.elixir.settings.elixirLS]
|
||||
# See https://github.com/elixir-lsp/elixir-ls/blob/master/apps/language_server/lib/language_server/server.ex
|
||||
# dialyzerEnable = true
|
||||
|
||||
[language.elm]
|
||||
filetypes = ["elm"]
|
||||
roots = ["elm.json"]
|
||||
command = "elm-language-server"
|
||||
args = ["--stdio"]
|
||||
settings_section = "elmLS"
|
||||
[language.elm.settings.elmLS]
|
||||
# See https://github.com/elm-tooling/elm-language-server#server-settings
|
||||
runtime = "node"
|
||||
elmPath = "elm"
|
||||
elmFormatPath = "elm-format"
|
||||
elmTestPath = "elm-test"
|
||||
|
||||
[language.elvish]
|
||||
filetypes = ["elvish"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "elvish"
|
||||
args = ["-lsp"]
|
||||
|
||||
[language.erlang]
|
||||
filetypes = ["erlang"]
|
||||
# See https://github.com/erlang-ls/erlang_ls.git for more information and
|
||||
# how to configure. This default config should work in most cases though.
|
||||
roots = ["rebar.config", "erlang.mk", ".git", ".hg"]
|
||||
command = "erlang_ls"
|
||||
|
||||
[language.go]
|
||||
filetypes = ["go"]
|
||||
roots = ["Gopkg.toml", "go.mod", ".git", ".hg"]
|
||||
command = "gopls"
|
||||
settings_section = "gopls"
|
||||
[language.go.settings.gopls]
|
||||
# See https://github.com/golang/tools/blob/master/gopls/doc/settings.md
|
||||
# "build.buildFlags" = []
|
||||
|
||||
[language.haskell]
|
||||
filetypes = ["haskell"]
|
||||
roots = ["hie.yaml", "cabal.project", "Setup.hs", "stack.yaml", "*.cabal"]
|
||||
command = "haskell-language-server-wrapper"
|
||||
args = ["--lsp"]
|
||||
settings_section = "_"
|
||||
[language.haskell.settings._]
|
||||
# See https://haskell-language-server.readthedocs.io/en/latest/configuration.html
|
||||
# haskell.formattingProvider = "ormolu"
|
||||
|
||||
[language.html]
|
||||
filetypes = ["html"]
|
||||
roots = ["package.json"]
|
||||
command = "vscode-html-languageserver"
|
||||
args = ["--stdio"]
|
||||
|
||||
# # Commented out by default because you still need to set the paths in the JDT
|
||||
# # Language Server arguments below before this can become a valid configuration.
|
||||
# [language.java]
|
||||
# filetypes = ["java"]
|
||||
# roots = [".git", "mvnw", "gradlew"]
|
||||
# command = "java"
|
||||
# args = [
|
||||
# "-Declipse.application=org.eclipse.jdt.ls.core.id1",
|
||||
# "-Dosgi.bundles.defaultStartLevel=4",
|
||||
# "-Declipse.product=org.eclipse.jdt.ls.core.product",
|
||||
# "-Dlog.level=ALL",
|
||||
# "-Dfile.encoding=utf-8",
|
||||
# "--add-modules=ALL-SYSTEM",
|
||||
# "--add-opens",
|
||||
# "java.base/java.util=ALL-UNNAMED",
|
||||
# "--add-opens",
|
||||
# "java.base/java.lang=ALL-UNNAMED",
|
||||
# "-noverify",
|
||||
# "-Xmx1G",
|
||||
# "-jar",
|
||||
# "/path/to/eclipse.jdt.ls/repository/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar",
|
||||
# "-configuration",
|
||||
# "/path/to/eclipse.jdt.ls/repository/config_linux",
|
||||
# "-data",
|
||||
# "/path/to/eclipse-workspace",
|
||||
# ]
|
||||
# [language.java.settings]
|
||||
# # See https://github.dev/eclipse/eclipse.jdt.ls
|
||||
# # "java.format.insertSpaces" = true
|
||||
|
||||
[language.javascriptreact]
|
||||
filetypes = ["javascript"]
|
||||
roots = ["package.json", "tsconfig.json", ".git", ".hg"]
|
||||
command = "typescript-language-server"
|
||||
args = ["--stdio"]
|
||||
settings_section = "_"
|
||||
[language.javascriptreact.settings._]
|
||||
# quotePreference = "single"
|
||||
# javascript.format.semicolons = "insert"
|
||||
|
||||
[language.json]
|
||||
filetypes = ["json"]
|
||||
roots = ["package.json"]
|
||||
command = "vscode-json-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
# Requires Julia package "LanguageServer"
|
||||
# Run: `julia --project=@kak-lsp -e 'import Pkg; Pkg.add("LanguageServer")'` to install it
|
||||
# Configuration adapted from https://github.com/neovim/nvim-lspconfig/blob/bcebfac7429cd8234960197dca8de1767f3ef5d3/lua/lspconfig/julials.lua
|
||||
[language.julia]
|
||||
filetypes = ["julia"]
|
||||
roots = ["Project.toml", ".git", ".hg"]
|
||||
command = "julia"
|
||||
args = [
|
||||
"--startup-file=no",
|
||||
"--history-file=no",
|
||||
"-e",
|
||||
"""
|
||||
ls_install_path = joinpath(get(DEPOT_PATH, 1, joinpath(homedir(), ".julia")), "environments", "kak-lsp");
|
||||
pushfirst!(LOAD_PATH, ls_install_path);
|
||||
using LanguageServer;
|
||||
popfirst!(LOAD_PATH);
|
||||
depot_path = get(ENV, "JULIA_DEPOT_PATH", "");
|
||||
buffer_file = ENV["kak_buffile"];
|
||||
project_path = let
|
||||
dirname(something(
|
||||
# 1. Check if there is an explicitly set project
|
||||
Base.load_path_expand((
|
||||
p = get(ENV, "JULIA_PROJECT", nothing);
|
||||
p === nothing ? nothing : isempty(p) ? nothing : p
|
||||
)),
|
||||
# 2. Check for Project.toml in current working directory
|
||||
Base.current_project(pwd()),
|
||||
# 3. Check for Project.toml from buffer's full file path excluding the file name
|
||||
Base.current_project(dirname(buffer_file)),
|
||||
# 4. Fallback to global environment
|
||||
Base.active_project()
|
||||
))
|
||||
end
|
||||
server = LanguageServer.LanguageServerInstance(stdin, stdout, project_path, depot_path);
|
||||
server.runlinter = true;
|
||||
run(server);
|
||||
""",
|
||||
]
|
||||
[language.julia.settings]
|
||||
# See https://github.com/julia-vscode/LanguageServer.jl/blob/master/src/requests/workspace.jl
|
||||
# Format options. See https://github.com/julia-vscode/DocumentFormat.jl/blob/master/src/DocumentFormat.jl
|
||||
# "julia.format.indent" = 4
|
||||
# Lint options. See https://github.com/julia-vscode/StaticLint.jl/blob/master/src/linting/checks.jl
|
||||
# "julia.lint.call" = true
|
||||
# Other options, see https://github.com/julia-vscode/LanguageServer.jl/blob/master/src/requests/workspace.jl
|
||||
# "julia.lint.run" = "true"
|
||||
|
||||
[language.latex]
|
||||
filetypes = ["latex"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "texlab"
|
||||
settings_section = "texlab"
|
||||
[language.latex.settings.texlab]
|
||||
# See https://github.com/latex-lsp/texlab/wiki/Configuration
|
||||
#
|
||||
# Preview configuration for zathura with SyncTeX search.
|
||||
# For other PDF viewers see https://github.com/latex-lsp/texlab/wiki/Previewing
|
||||
forwardSearch.executable = "zathura"
|
||||
forwardSearch.args = [
|
||||
"%p",
|
||||
"--synctex-forward", # Support texlab-forward-search
|
||||
"%l:1:%f",
|
||||
"--synctex-editor-command", # Inverse search: use Control+Left-Mouse-Button to jump to source.
|
||||
"""
|
||||
sh -c '
|
||||
echo "
|
||||
evaluate-commands -client %opt{texlab_client} %{
|
||||
evaluate-commands -try-client %opt{jumpclient} %{
|
||||
edit -- %{input} %{line}
|
||||
}
|
||||
}
|
||||
" | kak -p $kak_session
|
||||
'
|
||||
""",
|
||||
]
|
||||
|
||||
[language.lua]
|
||||
filetypes = ["lua"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "lua-language-server"
|
||||
[language.lua.settings.Lua]
|
||||
# See https://github.com/sumneko/vscode-lua/blob/master/setting/schema.json
|
||||
# diagnostics.enable = true
|
||||
|
||||
[language.markdown]
|
||||
filetypes = ["md", "markdown"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "vscode-markdown-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
# [[language]]
|
||||
# name = "markdown"
|
||||
# scope = "source.md"
|
||||
# injection-regex = "md|markdown"
|
||||
# file-types = ["md", "markdown", "PULLREQ_EDITMSG", "mkd", "mdwn", "mdown", "markdn", "mdtxt", "mdtext", "workbook"]
|
||||
# roots = [".marksman.toml"]
|
||||
# language-servers = [ "marksman" ]
|
||||
# indent = { tab-width = 2, unit = " " }
|
||||
|
||||
[language.nim]
|
||||
filetypes = ["nim"]
|
||||
roots = ["*.nimble", ".git", ".hg"]
|
||||
command = "nimlsp"
|
||||
|
||||
[language.nix]
|
||||
filetypes = ["nix"]
|
||||
roots = ["flake.nix", "shell.nix", ".git", ".hg"]
|
||||
command = "rnix-lsp"
|
||||
|
||||
[language.ocaml]
|
||||
filetypes = ["ocaml"]
|
||||
# Often useful to simply do a `touch dune-workspace` in your project root folder if you have problems with root detection
|
||||
roots = ["dune-workspace", "dune-project", "Makefile", "opam", "*.opam", "esy.json", ".git", ".hg", "dune"]
|
||||
command = "ocamllsp"
|
||||
|
||||
[language.php]
|
||||
filetypes = ["php"]
|
||||
roots = [".htaccess", "composer.json"]
|
||||
command = "intelephense"
|
||||
args = ["--stdio"]
|
||||
settings_section = "intelephense"
|
||||
[language.php.settings]
|
||||
intelephense.storagePath = "/tmp/intelephense"
|
||||
|
||||
[language.proto]
|
||||
filetypes = ["protobuf"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "pls" # https://github.com/lasorda/protobuf-language-server
|
||||
|
||||
[language.python]
|
||||
filetypes = ["python"]
|
||||
roots = ["requirements.txt", "setup.py", ".git", ".hg"]
|
||||
command = "pylsp"
|
||||
settings_section = "_"
|
||||
[language.python.settings._]
|
||||
# See https://github.com/python-lsp/python-lsp-server#configuration
|
||||
# pylsp.configurationSources = ["flake8"]
|
||||
pylsp.plugins.jedi_completion.include_params = true
|
||||
|
||||
[language.r]
|
||||
filetypes = ["r"]
|
||||
roots = ["DESCRIPTION", ".git", ".hg"]
|
||||
command = "R"
|
||||
args = ["--slave", "-e", "languageserver::run()"]
|
||||
|
||||
[language.racket]
|
||||
filetypes = ["racket"]
|
||||
roots = ["info.rkt"]
|
||||
command = "racket"
|
||||
args = ["-l", "racket-langserver"]
|
||||
|
||||
[language.reason]
|
||||
filetypes = ["reason"]
|
||||
roots = ["package.json", "Makefile", ".git", ".hg"]
|
||||
command = "ocamllsp"
|
||||
|
||||
[language.ruby]
|
||||
filetypes = ["ruby"]
|
||||
roots = ["Gemfile"]
|
||||
command = "solargraph"
|
||||
args = ["stdio"]
|
||||
settings_section = "_"
|
||||
[language.ruby.settings._]
|
||||
# See https://github.com/castwide/solargraph/blob/master/lib/solargraph/language_server/host.rb
|
||||
# diagnostics = false
|
||||
|
||||
# [language.rust]
|
||||
# filetypes = ["rust"]
|
||||
# roots = ["Cargo.toml"]
|
||||
# command = "sh"
|
||||
# args = [
|
||||
# "-c",
|
||||
# """
|
||||
# if path=$(rustup which rls 2>/dev/null); then
|
||||
# "$path"
|
||||
# else
|
||||
# rls
|
||||
# fi
|
||||
# """,
|
||||
# ]
|
||||
# [language.rust.settings.rust]
|
||||
# # See https://github.com/rust-lang/rls#configuration
|
||||
# # features = []
|
||||
|
||||
[language.rust]
|
||||
filetypes = ["rust"]
|
||||
roots = ["Cargo.toml"]
|
||||
command = "sh"
|
||||
args = [
|
||||
"-c",
|
||||
"""
|
||||
if path=$(rustup which rust-analyzer 2>/dev/null); then
|
||||
"$path"
|
||||
else
|
||||
rust-analyzer
|
||||
fi
|
||||
""",
|
||||
]
|
||||
settings_section = "rust-analyzer"
|
||||
[language.rust.settings.rust-analyzer]
|
||||
# See https://rust-analyzer.github.io/manual.html#configuration
|
||||
hoverActions.enable = false # kak-lsp doesn't support this at the moment
|
||||
# cargo.features = []
|
||||
|
||||
[language.terraform]
|
||||
filetypes = ["terraform"]
|
||||
roots = ["*.tf"]
|
||||
command = "terraform-ls"
|
||||
args = ["serve"]
|
||||
[language.terraform.settings.terraform-ls]
|
||||
# See https://github.com/hashicorp/terraform-ls/blob/main/docs/SETTINGS.md
|
||||
# rootModulePaths = []
|
||||
|
||||
# [language.typescriptreact]
|
||||
# filetypes = ["typescript"]
|
||||
# roots = ["package.json", "tsconfig.json", ".git", ".hg"]
|
||||
# command = "typescript-language-server"
|
||||
# args = ["--stdio"]
|
||||
# settings_section = "_"
|
||||
# [language.typescriptreact.settings._]
|
||||
# quotePreference = "double"
|
||||
# typescript.format.semicolons = "insert"
|
||||
|
||||
[language.tsx]
|
||||
filetypes = ["typescript"]
|
||||
roots = ["package.json", "tsconfig.json", ".git", ".hg"]
|
||||
command = "typescript-language-server"
|
||||
args = ["--stdio"]
|
||||
settings_section = "_"
|
||||
|
||||
# [language.typescript.settings.deno]
|
||||
# enable = true
|
||||
# lint = true
|
||||
|
||||
[language.yaml]
|
||||
filetypes = ["yaml"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "yaml-language-server"
|
||||
args = ["--stdio"]
|
||||
[language.yaml.settings]
|
||||
# See https://github.com/redhat-developer/yaml-language-server#language-server-settings
|
||||
# Defaults are at https://github.com/redhat-developer/yaml-language-server/blob/master/src/yamlSettings.ts
|
||||
# yaml.format.enable = true
|
||||
|
||||
[language.zig]
|
||||
filetypes = ["zig"]
|
||||
roots = ["build.zig"]
|
||||
command = "zls"
|
||||
|
||||
# Semantic tokens support
|
||||
# See https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_semanticTokens
|
||||
# for the default list of tokens and modifiers.
|
||||
# However, many language servers implement their own values.
|
||||
# Make sure to check the output of `lsp-capabilities` and each server's documentation and source code as well.
|
||||
# Examples:
|
||||
# - TypeScript: https://github.com/microsoft/vscode-languageserver-node/blob/main/client/src/common/semanticTokens.ts
|
||||
# - Rust Analyzer: https://github.com/rust-analyzer/rust-analyzer/blob/master/crates/ide/src/syntax_highlighting.rs
|
||||
[semantic_tokens]
|
||||
faces = [
|
||||
{face="documentation", token="comment", modifiers=["documentation"]},
|
||||
{face="comment", token="comment"},
|
||||
{face="function", token="function"},
|
||||
{face="keyword", token="keyword"},
|
||||
{face="module", token="namespace"},
|
||||
{face="operator", token="operator"},
|
||||
{face="string", token="string"},
|
||||
{face="type", token="type"},
|
||||
{face="default+d", token="variable", modifiers=["readonly"]},
|
||||
{face="default+d", token="variable", modifiers=["constant"]},
|
||||
{face="variable", token="variable"},
|
||||
]
|
83
nate-work/dotfiles/kak/colors/catppuccin_frappe.kak
Normal file
@ -0,0 +1,83 @@
|
||||
# Catppuccin theme for Kakoune
|
||||
|
||||
# Color palette
|
||||
declare-option str rosewater 'rgb:f2d5cf'
|
||||
declare-option str red 'rgb:e78284'
|
||||
declare-option str mauve 'rgb:ca9ee6'
|
||||
declare-option str maroon 'rgb:ea999c'
|
||||
declare-option str pink 'rgb:f4b8e4'
|
||||
declare-option str cyan 'rgb:85c1dc'
|
||||
declare-option str yellow 'rgb:e5c890'
|
||||
declare-option str green 'rgb:a6d189'
|
||||
declare-option str white 'rgb:c6d0f5'
|
||||
declare-option str blue 'rgb:8caaee'
|
||||
declare-option str sky 'rgb:99d1db'
|
||||
declare-option str lavender 'rgb:babbf1'
|
||||
declare-option str black1 'rgb:292c3c'
|
||||
declare-option str black2 'rgb:303446'
|
||||
declare-option str black3 'rgb:414559'
|
||||
declare-option str orange 'rgb:ef9f76'
|
||||
declare-option str teal 'rgb:81c8be'
|
||||
declare-option str gray0 'rgb:626880'
|
||||
declare-option str gray1 'rgb:737994'
|
||||
declare-option str bright_red %opt{red}
|
||||
declare-option str bright_green %opt{green}
|
||||
declare-option str bright_yellow %opt{yellow}
|
||||
declare-option str bright_blue %opt{blue}
|
||||
declare-option str bright_cyan %opt{cyan}
|
||||
declare-option str bright_white %opt{white}
|
||||
declare-option str foreground %opt{white}
|
||||
declare-option str background %opt{black2}
|
||||
|
||||
# Markup
|
||||
set-face global title "%opt{rosewater}"
|
||||
set-face global header "%opt{bright_red}"
|
||||
set-face global bold "%opt{mauve}"
|
||||
set-face global italic "%opt{lavender}"
|
||||
set-face global mono "%opt{green}"
|
||||
set-face global block "%opt{cyan}"
|
||||
set-face global link "%opt{green}"
|
||||
set-face global bullet "%opt{green}"
|
||||
set-face global list "%opt{white}"
|
||||
|
||||
# Builtins
|
||||
set-face global Default "%opt{white},%opt{background}"
|
||||
set-face global PrimarySelection "%opt{gray0},%opt{lavender}"
|
||||
set-face global SecondarySelection "%opt{lavender},%opt{gray0}"
|
||||
set-face global PrimaryCursor "%opt{background},%opt{rosewater}"
|
||||
set-face global SecondaryCursor "%opt{black1},%opt{teal}"
|
||||
set-face global PrimaryCursorEol "%opt{gray0},%opt{mauve}"
|
||||
set-face global SecondaryCursorEol "%opt{gray0},%opt{maroon}"
|
||||
set-face global LineNumbers "%opt{gray1},%opt{background}"
|
||||
set-face global LineNumberCursor "%opt{lavender},%opt{gray0}+b"
|
||||
set-face global LineNumbersWrapped "%opt{teal},%opt{black1}+i"
|
||||
set-face global MenuForeground "%opt{white},%opt{gray0}+b"
|
||||
set-face global MenuBackground "%opt{white},%opt{black3}"
|
||||
set-face global MenuInfo "%opt{black1},%opt{blue}"
|
||||
set-face global Information "%opt{black1},%opt{lavender}"
|
||||
set-face global Error "%opt{red},%opt{black2}"
|
||||
set-face global StatusLine "%opt{white},%opt{black1}"
|
||||
set-face global StatusLineMode "%opt{black2},%opt{yellow}"
|
||||
set-face global StatusLineInfo "%opt{background},%opt{green}"
|
||||
set-face global StatusLineValue "%opt{orange},%opt{gray0}"
|
||||
set-face global StatusCursor "%opt{black1},%opt{lavender}"
|
||||
set-face global Prompt "%opt{green},%opt{black2}"
|
||||
set-face global MatchingChar "%opt{maroon},%opt{black2}"
|
||||
set-face global Whitespace "%opt{gray1},%opt{background}+f"
|
||||
set-face global WrapMarker Whitespace
|
||||
set-face global BufferPadding "%opt{background},%opt{background}"
|
||||
|
||||
# Code
|
||||
set-face global value "%opt{orange}"
|
||||
set-face global type "%opt{rosewater}"
|
||||
set-face global variable "%opt{white}"
|
||||
set-face global module "%opt{maroon}"
|
||||
set-face global function "%opt{sky}"
|
||||
set-face global string "%opt{green}"
|
||||
set-face global keyword "%opt{blue}"
|
||||
set-face global operator "%opt{blue}"
|
||||
set-face global attribute "%opt{green}"
|
||||
set-face global comment "%opt{gray1}"
|
||||
set-face global documentation comment
|
||||
set-face global meta "%opt{pink}"
|
||||
set-face global builtin "%opt{lavender}+b"
|
83
nate-work/dotfiles/kak/colors/catppuccin_latte.kak
Normal file
@ -0,0 +1,83 @@
|
||||
# Catppuccin theme for Kakoune
|
||||
|
||||
# Color palette
|
||||
declare-option str rosewater 'rgb:dc8a78'
|
||||
declare-option str red 'rgb:d20f39'
|
||||
declare-option str mauve 'rgb:8839ef'
|
||||
declare-option str maroon 'rgb:e64553'
|
||||
declare-option str pink 'rgb:ea76cb'
|
||||
declare-option str cyan 'rgb:209fb5'
|
||||
declare-option str yellow 'rgb:df8e1d'
|
||||
declare-option str green 'rgb:40a02b'
|
||||
declare-option str white 'rgb:4c4f69'
|
||||
declare-option str blue 'rgb:1e66f5'
|
||||
declare-option str sky 'rgb:04a5e5'
|
||||
declare-option str lavender 'rgb:7287fd'
|
||||
declare-option str black1 'rgb:e6e9ef'
|
||||
declare-option str black2 'rgb:eff1f5'
|
||||
declare-option str black3 'rgb:ccd0da'
|
||||
declare-option str orange 'rgb:fe640b'
|
||||
declare-option str teal 'rgb:179299'
|
||||
declare-option str gray0 'rgb:acb0be'
|
||||
declare-option str gray1 'rgb:9ca0b0'
|
||||
declare-option str bright_red %opt{red}
|
||||
declare-option str bright_green %opt{green}
|
||||
declare-option str bright_yellow %opt{yellow}
|
||||
declare-option str bright_blue %opt{blue}
|
||||
declare-option str bright_cyan %opt{cyan}
|
||||
declare-option str bright_white %opt{white}
|
||||
declare-option str foreground %opt{white}
|
||||
declare-option str background %opt{black2}
|
||||
|
||||
# Markup
|
||||
set-face global title "%opt{rosewater}"
|
||||
set-face global header "%opt{bright_red}"
|
||||
set-face global bold "%opt{mauve}"
|
||||
set-face global italic "%opt{lavender}"
|
||||
set-face global mono "%opt{green}"
|
||||
set-face global block "%opt{cyan}"
|
||||
set-face global link "%opt{green}"
|
||||
set-face global bullet "%opt{green}"
|
||||
set-face global list "%opt{white}"
|
||||
|
||||
# Builtins
|
||||
set-face global Default "%opt{white},%opt{background}"
|
||||
set-face global PrimarySelection "%opt{gray0},%opt{lavender}"
|
||||
set-face global SecondarySelection "%opt{lavender},%opt{gray0}"
|
||||
set-face global PrimaryCursor "%opt{background},%opt{rosewater}"
|
||||
set-face global SecondaryCursor "%opt{black1},%opt{teal}"
|
||||
set-face global PrimaryCursorEol "%opt{gray0},%opt{mauve}"
|
||||
set-face global SecondaryCursorEol "%opt{gray0},%opt{maroon}"
|
||||
set-face global LineNumbers "%opt{gray1},%opt{background}"
|
||||
set-face global LineNumberCursor "%opt{lavender},%opt{gray0}+b"
|
||||
set-face global LineNumbersWrapped "%opt{teal},%opt{black1}+i"
|
||||
set-face global MenuForeground "%opt{white},%opt{gray0}+b"
|
||||
set-face global MenuBackground "%opt{white},%opt{black3}"
|
||||
set-face global MenuInfo "%opt{black1},%opt{blue}"
|
||||
set-face global Information "%opt{black1},%opt{lavender}"
|
||||
set-face global Error "%opt{red},%opt{black2}"
|
||||
set-face global StatusLine "%opt{white},%opt{black1}"
|
||||
set-face global StatusLineMode "%opt{black2},%opt{yellow}"
|
||||
set-face global StatusLineInfo "%opt{background},%opt{green}"
|
||||
set-face global StatusLineValue "%opt{orange},%opt{gray0}"
|
||||
set-face global StatusCursor "%opt{black1},%opt{lavender}"
|
||||
set-face global Prompt "%opt{green},%opt{black2}"
|
||||
set-face global MatchingChar "%opt{maroon},%opt{black2}"
|
||||
set-face global Whitespace "%opt{gray1},%opt{background}+f"
|
||||
set-face global WrapMarker Whitespace
|
||||
set-face global BufferPadding "%opt{background},%opt{background}"
|
||||
|
||||
# Code
|
||||
set-face global value "%opt{orange}"
|
||||
set-face global type "%opt{rosewater}"
|
||||
set-face global variable "%opt{white}"
|
||||
set-face global module "%opt{maroon}"
|
||||
set-face global function "%opt{sky}"
|
||||
set-face global string "%opt{green}"
|
||||
set-face global keyword "%opt{blue}"
|
||||
set-face global operator "%opt{blue}"
|
||||
set-face global attribute "%opt{green}"
|
||||
set-face global comment "%opt{gray1}"
|
||||
set-face global documentation comment
|
||||
set-face global meta "%opt{pink}"
|
||||
set-face global builtin "%opt{lavender}+b"
|
83
nate-work/dotfiles/kak/colors/catppuccin_macchiato.kak
Normal file
@ -0,0 +1,83 @@
|
||||
# Catppuccin theme for Kakoune
|
||||
|
||||
# Color palette
|
||||
declare-option str rosewater 'rgb:f4dbd6'
|
||||
declare-option str red 'rgb:ed8796'
|
||||
declare-option str mauve 'rgb:c6a0f6'
|
||||
declare-option str maroon 'rgb:ee99a0'
|
||||
declare-option str pink 'rgb:f5bde6'
|
||||
declare-option str cyan 'rgb:7dc4e4'
|
||||
declare-option str yellow 'rgb:eed49f'
|
||||
declare-option str green 'rgb:a6da95'
|
||||
declare-option str white 'rgb:cad3f5'
|
||||
declare-option str blue 'rgb:8aadf4'
|
||||
declare-option str sky 'rgb:91d7e3'
|
||||
declare-option str lavender 'rgb:b7bdf8'
|
||||
declare-option str black1 'rgb:1e2030'
|
||||
declare-option str black2 'rgb:24273a'
|
||||
declare-option str black3 'rgb:363a4f'
|
||||
declare-option str orange 'rgb:f5a97f'
|
||||
declare-option str teal 'rgb:8bd5ca'
|
||||
declare-option str gray0 'rgb:5b6078'
|
||||
declare-option str gray1 'rgb:6e738d'
|
||||
declare-option str bright_red %opt{red}
|
||||
declare-option str bright_green %opt{green}
|
||||
declare-option str bright_yellow %opt{yellow}
|
||||
declare-option str bright_blue %opt{blue}
|
||||
declare-option str bright_cyan %opt{cyan}
|
||||
declare-option str bright_white %opt{white}
|
||||
declare-option str foreground %opt{white}
|
||||
declare-option str background %opt{black2}
|
||||
|
||||
# Markup
|
||||
set-face global title "%opt{rosewater}"
|
||||
set-face global header "%opt{bright_red}"
|
||||
set-face global bold "%opt{mauve}"
|
||||
set-face global italic "%opt{lavender}"
|
||||
set-face global mono "%opt{green}"
|
||||
set-face global block "%opt{cyan}"
|
||||
set-face global link "%opt{green}"
|
||||
set-face global bullet "%opt{green}"
|
||||
set-face global list "%opt{white}"
|
||||
|
||||
# Builtins
|
||||
set-face global Default "%opt{white},%opt{background}"
|
||||
set-face global PrimarySelection "%opt{gray0},%opt{lavender}"
|
||||
set-face global SecondarySelection "%opt{lavender},%opt{gray0}"
|
||||
set-face global PrimaryCursor "%opt{background},%opt{rosewater}"
|
||||
set-face global SecondaryCursor "%opt{black1},%opt{teal}"
|
||||
set-face global PrimaryCursorEol "%opt{gray0},%opt{mauve}"
|
||||
set-face global SecondaryCursorEol "%opt{gray0},%opt{maroon}"
|
||||
set-face global LineNumbers "%opt{gray1},%opt{background}"
|
||||
set-face global LineNumberCursor "%opt{lavender},%opt{gray0}+b"
|
||||
set-face global LineNumbersWrapped "%opt{teal},%opt{black1}+i"
|
||||
set-face global MenuForeground "%opt{white},%opt{gray0}+b"
|
||||
set-face global MenuBackground "%opt{white},%opt{black3}"
|
||||
set-face global MenuInfo "%opt{black1},%opt{blue}"
|
||||
set-face global Information "%opt{black1},%opt{lavender}"
|
||||
set-face global Error "%opt{red},%opt{black2}"
|
||||
set-face global StatusLine "%opt{white},%opt{black1}"
|
||||
set-face global StatusLineMode "%opt{black2},%opt{yellow}"
|
||||
set-face global StatusLineInfo "%opt{background},%opt{green}"
|
||||
set-face global StatusLineValue "%opt{orange},%opt{gray0}"
|
||||
set-face global StatusCursor "%opt{black1},%opt{lavender}"
|
||||
set-face global Prompt "%opt{green},%opt{black2}"
|
||||
set-face global MatchingChar "%opt{maroon},%opt{black2}"
|
||||
set-face global Whitespace "%opt{gray1},%opt{background}+f"
|
||||
set-face global WrapMarker Whitespace
|
||||
set-face global BufferPadding "%opt{background},%opt{background}"
|
||||
|
||||
# Code
|
||||
set-face global value "%opt{orange}"
|
||||
set-face global type "%opt{pink}"
|
||||
set-face global variable "%opt{white}"
|
||||
set-face global module "%opt{mauve}"
|
||||
set-face global function "%opt{sky}"
|
||||
set-face global string "%opt{green}"
|
||||
set-face global keyword "%opt{blue}"
|
||||
set-face global operator "%opt{blue}"
|
||||
set-face global attribute "%opt{green}"
|
||||
set-face global comment "%opt{gray1}"
|
||||
set-face global documentation comment
|
||||
set-face global meta "%opt{pink}"
|
||||
set-face global builtin "%opt{lavender}+b"
|
83
nate-work/dotfiles/kak/colors/catppuccin_mocha.kak
Normal file
@ -0,0 +1,83 @@
|
||||
# Catppuccin theme for Kakoune
|
||||
|
||||
# Color palette
|
||||
declare-option str rosewater 'rgb:f5e0dc'
|
||||
declare-option str red 'rgb:f38ba8'
|
||||
declare-option str mauve 'rgb:cba6f7'
|
||||
declare-option str maroon 'rgb:eba0ac'
|
||||
declare-option str pink 'rgb:f5c2e7'
|
||||
declare-option str cyan 'rgb:74c7ec'
|
||||
declare-option str yellow 'rgb:f9e2af'
|
||||
declare-option str green 'rgb:a6e3a1'
|
||||
declare-option str white 'rgb:cdd6f4'
|
||||
declare-option str blue 'rgb:89b4fa'
|
||||
declare-option str sky 'rgb:89dceb'
|
||||
declare-option str lavender 'rgb:b4befe'
|
||||
declare-option str black1 'rgb:181825'
|
||||
declare-option str black2 'rgb:1e1e2e'
|
||||
declare-option str black3 'rgb:313244'
|
||||
declare-option str orange 'rgb:fab387'
|
||||
declare-option str teal 'rgb:94e2d5'
|
||||
declare-option str gray0 'rgb:585b70'
|
||||
declare-option str gray1 'rgb:6c7086'
|
||||
declare-option str bright_red %opt{red}
|
||||
declare-option str bright_green %opt{green}
|
||||
declare-option str bright_yellow %opt{yellow}
|
||||
declare-option str bright_blue %opt{blue}
|
||||
declare-option str bright_cyan %opt{cyan}
|
||||
declare-option str bright_white %opt{white}
|
||||
declare-option str foreground %opt{white}
|
||||
declare-option str background %opt{black2}
|
||||
|
||||
# Markup
|
||||
set-face global title "%opt{rosewater}"
|
||||
set-face global header "%opt{bright_red}"
|
||||
set-face global bold "%opt{mauve}"
|
||||
set-face global italic "%opt{lavender}"
|
||||
set-face global mono "%opt{green}"
|
||||
set-face global block "%opt{cyan}"
|
||||
set-face global link "%opt{green}"
|
||||
set-face global bullet "%opt{green}"
|
||||
set-face global list "%opt{white}"
|
||||
|
||||
# Builtins
|
||||
set-face global Default "%opt{white},%opt{background}"
|
||||
set-face global PrimarySelection "%opt{gray0},%opt{lavender}"
|
||||
set-face global SecondarySelection "%opt{lavender},%opt{gray0}"
|
||||
set-face global PrimaryCursor "%opt{background},%opt{rosewater}"
|
||||
set-face global SecondaryCursor "%opt{black1},%opt{teal}"
|
||||
set-face global PrimaryCursorEol "%opt{gray0},%opt{mauve}"
|
||||
set-face global SecondaryCursorEol "%opt{gray0},%opt{maroon}"
|
||||
set-face global LineNumbers "%opt{gray1},%opt{background}"
|
||||
set-face global LineNumberCursor "%opt{lavender},%opt{gray0}+b"
|
||||
set-face global LineNumbersWrapped "%opt{teal},%opt{black1}+i"
|
||||
set-face global MenuForeground "%opt{white},%opt{gray0}+b"
|
||||
set-face global MenuBackground "%opt{white},%opt{black3}"
|
||||
set-face global MenuInfo "%opt{black1},%opt{blue}"
|
||||
set-face global Information "%opt{black1},%opt{lavender}"
|
||||
set-face global Error "%opt{red},%opt{black2}"
|
||||
set-face global StatusLine "%opt{white},%opt{black1}"
|
||||
set-face global StatusLineMode "%opt{black2},%opt{yellow}"
|
||||
set-face global StatusLineInfo "%opt{background},%opt{green}"
|
||||
set-face global StatusLineValue "%opt{orange},%opt{gray0}"
|
||||
set-face global StatusCursor "%opt{black1},%opt{lavender}"
|
||||
set-face global Prompt "%opt{green},%opt{black2}"
|
||||
set-face global MatchingChar "%opt{maroon},%opt{black2}"
|
||||
set-face global Whitespace "%opt{gray1},%opt{background}+f"
|
||||
set-face global WrapMarker Whitespace
|
||||
set-face global BufferPadding "%opt{background},%opt{background}"
|
||||
|
||||
# Code
|
||||
set-face global value "%opt{orange}"
|
||||
set-face global type "%opt{rosewater}"
|
||||
set-face global variable "%opt{white}"
|
||||
set-face global module "%opt{maroon}"
|
||||
set-face global function "%opt{sky}"
|
||||
set-face global string "%opt{green}"
|
||||
set-face global keyword "%opt{blue}"
|
||||
set-face global operator "%opt{blue}"
|
||||
set-face global attribute "%opt{green}"
|
||||
set-face global comment "%opt{gray1}"
|
||||
set-face global documentation comment
|
||||
set-face global meta "%opt{pink}"
|
||||
set-face global builtin "%opt{lavender}+b"
|
1
nate-work/dotfiles/kak/colors/nord.kak
Normal file
@ -0,0 +1 @@
|
||||
|
87
nate-work/dotfiles/kak/colors/pastel.kak
Normal file
@ -0,0 +1,87 @@
|
||||
|
||||
# Pastel theme for Kakoune
|
||||
|
||||
# Color palette
|
||||
# declare-option str black 'rgb:2b2e33'
|
||||
declare-option str black default
|
||||
declare-option str dark 'rgb:3b3b46'
|
||||
declare-option str gray 'rgb:5a5b5b'
|
||||
declare-option str aqua 'rgb:6bbac1'
|
||||
declare-option str white 'rgb:dcdbd7'
|
||||
declare-option str blue 'rgb:65a4cf'
|
||||
declare-option str cyan 'rgb:6dcac0'
|
||||
declare-option str blue_green 'rgb:81bba3'
|
||||
declare-option str green 'rgb:8dbc92'
|
||||
declare-option str orange 'rgb:dea981'
|
||||
declare-option str pink 'rgb:d38da9'
|
||||
declare-option str purple 'rgb:ca9bf7'
|
||||
declare-option str red 'rgb:db948e'
|
||||
declare-option str yellow 'rgb:e1d179'
|
||||
declare-option str lime 'rgb:adc47e'
|
||||
declare-option str dimgray 'rgb:3d4747'
|
||||
declare-option str psel 'rgba:46466480'
|
||||
declare-option str ssel 'rgba:37375580'
|
||||
|
||||
declare-option str background %opt{black}
|
||||
declare-option str dimmed_background %opt{gray}
|
||||
declare-option str foreground %opt{white}
|
||||
|
||||
# Reference
|
||||
# https://github.com/mawww/kakoune/blob/master/colors/default.kak
|
||||
# For code
|
||||
set-face global value "%opt{yellow}"
|
||||
set-face global type "%opt{aqua}"
|
||||
set-face global variable "%opt{purple}"
|
||||
set-face global module "%opt{white}"
|
||||
set-face global function "%opt{orange}"
|
||||
set-face global string "%opt{pink}"
|
||||
set-face global keyword "%opt{green}"
|
||||
set-face global operator "%opt{aqua}"
|
||||
set-face global attribute "%opt{blue_green}"
|
||||
set-face global bracket "%opt{white}+b"
|
||||
set-face global arguement "%opt{blue_green}"
|
||||
set-face global comma "%opt{white}"
|
||||
set-face global constant "%opt{blue_green}+b"
|
||||
set-face global class "%opt{lime}"
|
||||
set-face global comment "%opt{gray}+i"
|
||||
set-face global meta "%opt{blue}"
|
||||
set-face global builtin "%opt{cyan}+b"
|
||||
|
||||
# For markup
|
||||
set-face global title "%opt{pink}"
|
||||
set-face global header "%opt{orange}"
|
||||
set-face global bold "%opt{pink}"
|
||||
set-face global italic "%opt{purple}"
|
||||
set-face global mono "%opt{green}"
|
||||
set-face global block "%opt{cyan}"
|
||||
set-face global link "%opt{green}"
|
||||
set-face global bullet "%opt{green}"
|
||||
set-face global list "%opt{white}"
|
||||
|
||||
# Builtin faces
|
||||
set-face global Default "%opt{white},%opt{black}"
|
||||
# set-face global Default "%opt{white},default"
|
||||
set-face global PrimarySelection "default,%opt{psel}"
|
||||
set-face global SecondarySelection "default,%opt{ssel}"
|
||||
set-face global PrimaryCursor "%opt{dark},%opt{purple}"
|
||||
set-face global SecondaryCursor "%opt{dark},%opt{aqua}"
|
||||
set-face global PrimaryCursorEol "%opt{dark},%opt{yellow}"
|
||||
set-face global SecondaryCursorEol "%opt{dark},%opt{blue}"
|
||||
set-face global LineNumbers "%opt{gray},%opt{black}"
|
||||
set-face global LineNumberCursor "%opt{purple},%opt{black}+b"
|
||||
set-face global LineNumbersWrapped "%opt{gray},%opt{black}+i"
|
||||
set-face global MenuForeground "%opt{dark},%opt{white}+b"
|
||||
set-face global MenuBackground "%opt{white},%opt{dark}"
|
||||
set-face global MenuInfo "%opt{dark},%opt{orange}"
|
||||
set-face global Information "%opt{yellow},%opt{black}"
|
||||
set-face global Error "%opt{red},%opt{black}"
|
||||
set-face global StatusLine "%opt{white},%opt{black}"
|
||||
set-face global StatusLineMode "%opt{aqua},%opt{black}"
|
||||
set-face global StatusLineInfo "%opt{purple},%opt{black}"
|
||||
set-face global StatusLineValue "%opt{orange},%opt{black}"
|
||||
set-face global StatusCursor "%opt{white},%opt{blue}"
|
||||
set-face global Prompt "%opt{green},%opt{black}"
|
||||
set-face global MatchingChar "%opt{blue},%opt{black}"
|
||||
set-face global Whitespace "%opt{dimgray},%opt{black}+f"
|
||||
set-face global WrapMarker Whitespace
|
||||
set-face global BufferPadding "%opt{black},%opt{black}"
|
275
nate-work/dotfiles/kak/kakrc
Normal file
@ -0,0 +1,275 @@
|
||||
# ------------------
|
||||
# Plugin Setup
|
||||
# ------------------
|
||||
|
||||
# IMORTANT NOTE:
|
||||
# I needed to open kakoune and type ':plug-install' to actually
|
||||
# install the plugins listed in this file. I did not see this
|
||||
# mentioned in wikis or anything, so make sure to do this to
|
||||
# avoid searching github wikis and reddit needlessly.
|
||||
|
||||
# Creates the /plugins folder if it doesnt exist each startup
|
||||
evaluate-commands %sh{
|
||||
plugins="$kak_config/plugins"
|
||||
mkdir -p "$plugins"
|
||||
[ ! -e "$plugins/plug.kak" ] && \
|
||||
git clone -q https://github.com/andreyorst/plug.kak.git "$plugins/plug.kak"
|
||||
printf "%s\n" "source '$plugins/plug.kak/rc/plug.kak'"
|
||||
}
|
||||
plug "andreyorst/plug.kak" noload
|
||||
|
||||
# ------------------
|
||||
# Editor Settings
|
||||
# ------------------
|
||||
|
||||
# Disables startup message showing
|
||||
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"
|
||||
|
||||
# plug "catppuccin/kakoune" theme config %{
|
||||
# colorscheme catppuccin_macchiato
|
||||
# }
|
||||
colorscheme catppuccin_macchiato
|
||||
# relative line numbers
|
||||
hook global BufCreate .* %{
|
||||
add-highlighter buffer/ number-lines -hlcursor
|
||||
}
|
||||
|
||||
# Git Gutters
|
||||
hook global WinCreate .* %{ evaluate-commands %sh{
|
||||
if [ $kak_buffile != $kak_bufname ] && git ls-files --error-unmatch "$kak_buffile" > /dev/null 2>&1; then
|
||||
echo "git show-diff"
|
||||
fi
|
||||
}}
|
||||
|
||||
# Write on unfocus
|
||||
hook global FocusOut .* %{ try %{
|
||||
write
|
||||
}}
|
||||
|
||||
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
|
||||
|
||||
# ------------------
|
||||
# Key bindings
|
||||
# ------------------
|
||||
|
||||
# Remap hjkl navigation to colemak-dh layout
|
||||
map global normal n h
|
||||
map global normal e k
|
||||
map global normal i j
|
||||
map global normal o l
|
||||
|
||||
map global normal N H
|
||||
map global normal E K
|
||||
map global normal I J
|
||||
map global normal O L
|
||||
|
||||
# Remap insert command
|
||||
map global normal h i
|
||||
|
||||
# Insert line above or below
|
||||
map global normal l o
|
||||
map global normal L O
|
||||
|
||||
# No alt, remap
|
||||
map global normal <c-f> <a-f> -docstring 'same as [f] but in the other direction'
|
||||
map global normal <c-t> <a-t> -docstring 'same as [t] but in the other direction'
|
||||
map global normal <c-n> <a-h> -docstring 'select to beginning of line'
|
||||
map global normal <c-o> <a-l> -docstring 'select to end of line'
|
||||
map global normal <c-s> <a-s> -docstring 'split selections on line boundaries'
|
||||
map global normal <c-S> <a-S> -docstring 'select first and last character of each selection'
|
||||
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'
|
||||
map global normal <c-i> <pagedown> -docstring 'Scroll screen down'
|
||||
|
||||
map global normal <c-/> ':comment-line<ret>' -docstring 'comment selected lines'
|
||||
|
||||
# Ctrl-s to save
|
||||
map global normal <c-s> ':w<ret>' -docstring 'write buffer'
|
||||
# Ctrl-x to save and exit
|
||||
map global normal <c-x> ':w<ret>:db<ret>' -docstring 'write close buffer'
|
||||
|
||||
# Colemak goto remappings
|
||||
map global goto n h -docstring 'line start'
|
||||
map global goto o l -docstring 'line end'
|
||||
map global goto e k -docstring 'buffer top'
|
||||
map global goto i j -docstring 'buffer bottom'
|
||||
|
||||
map global goto h n
|
||||
map global goto l o
|
||||
map global goto k e
|
||||
map global goto j i
|
||||
|
||||
# Remap view keys
|
||||
map global view n h
|
||||
map global view o l
|
||||
map global view e k
|
||||
map global view i j
|
||||
|
||||
map global normal ( ': buffer-previous<ret>' -docstring 'prev buffer'
|
||||
map global normal ) ': buffer-next<ret>' -docstring 'next buffer'
|
||||
|
||||
# map global normal [ ( -docstring 'rotate main selection'
|
||||
|
||||
# map global normal ] ) -docstring 'rotate main selection backwards'
|
||||
# Make x select <param> lines up and down
|
||||
def -params 1 extend-line-down %{
|
||||
exec "<a-:>%arg{1}J"
|
||||
}
|
||||
|
||||
def -params 1 extend-line-up %{
|
||||
exec "<a-:><a-;>%arg{1}K<a-;>"
|
||||
try %{
|
||||
exec -draft ';<a-K>\n<ret>'
|
||||
exec X
|
||||
}
|
||||
exec '<a-;><a-X>'
|
||||
}
|
||||
|
||||
|
||||
map global normal x ':extend-line-down %val{count}<ret>'
|
||||
map global normal X ':extend-line-up %val{count}<ret>'
|
||||
|
||||
map global normal k n -docstring 'next result'
|
||||
map global normal K N -docstring 'next result add selection'
|
||||
|
||||
map global normal <a-k> <c-n> -docstring 'prev result'
|
||||
map global normal <a-K> <c-N> -docstring 'prev result add selection'
|
||||
|
||||
map global insert <down> <c-n> -docstring 'next completion'
|
||||
map global insert <up> <c-p> -docstring 'prev completion'
|
||||
|
||||
# User Mode Bindings
|
||||
# Accessed with <space>
|
||||
declare-user-mode git
|
||||
map global user g ': enter-user-mode git<ret>' -docstring "Git mode"
|
||||
map global user p '<a-!>wl-paste -n<ret>' -docstring 'paste from system clip board'
|
||||
hook global RegisterModified '"' %{ nop %sh{
|
||||
printf %s "$kak_main_reg_dquote" | wl-copy > /dev/null 2>&1 &
|
||||
}}
|
||||
|
||||
# Open kakrc, double quotes needed to ecsape the kakrc_path option
|
||||
map global user o ":edit %opt{kakrc_path}<ret>" -docstring 'open kakrc'
|
||||
map global user z ":edit %opt{shell_config}<ret>" -docstring 'open shell config'
|
||||
map global user S ":edit %opt{sway_conf_path}<ret>" -docstring 'open wm config'
|
||||
# Git Mode Bindings
|
||||
map global git d '<esc>:git show-diff<ret>' -docstring "Show diff"
|
||||
|
||||
# -----------------
|
||||
# LSP Configuration
|
||||
# -----------------
|
||||
|
||||
plug "kak-lsp/kak-lsp" do %{
|
||||
cargo install --locked --force --path .
|
||||
mkdir -p ~/.config/kak-lsp
|
||||
cp -n kak-lsp.toml ~/.config/kak-lsp/
|
||||
} config %{
|
||||
|
||||
# enable inlay hints
|
||||
lsp-inlay-hints-enable global
|
||||
lsp-inlay-diagnostics-enable global
|
||||
|
||||
# set global lsp_diagnostic_line_error_sign '║'
|
||||
# set global lsp_diagnostic_line_warning_sign '┊'
|
||||
|
||||
define-command lsp-restart -docstring 'restart lsp server' %{ lsp-stop; lsp-start }
|
||||
|
||||
map global insert <tab> '<a-;>:try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks <lt>tab> }<ret>' -docstring 'Select next snippet placeholder'
|
||||
map global object a '<a-semicolon>lsp-object<ret>' -docstring 'LSP any symbol'
|
||||
map global object <a-a> '<a-semicolon>lsp-object<ret>' -docstring 'LSP any symbol'
|
||||
map global object e '<a-semicolon>lsp-object Function Method<ret>' -docstring 'LSP function or method'
|
||||
map global object k '<a-semicolon>lsp-object Class Interface Struct<ret>' -docstring 'LSP class interface or struct'
|
||||
map global object d '<a-semicolon>lsp-diagnostic-object --include-warnings<ret>' -docstring 'LSP errors and warnings'
|
||||
map global object D '<a-semicolon>lsp-diagnostic-object<ret>' -docstring 'LSP errors'
|
||||
|
||||
# load lsp for supported filetypes
|
||||
set-option global lsp_cmd "kak-lsp -s %val{session} -vvv --log /tmp/kak-lsp.log"
|
||||
hook global WinSetOption filetype=(rust|python|go|javascript|typescript|c|cpp|zig|dart|ruby) %{
|
||||
lsp-enable-window
|
||||
# lsp-auto-hover-enable
|
||||
map global user l ': enter-user-mode lsp<ret>' -docstring 'lsp mode'
|
||||
map global user h ': enter-user-mode lsp<ret>h' -docstring 'lsp help'
|
||||
map global user a ': enter-user-mode lsp<ret>a' -docstring 'lsp code action'
|
||||
set-option global lsp_hover_anchor false
|
||||
}
|
||||
|
||||
hook global KakEnd .* lsp-exit
|
||||
}
|
||||
|
||||
|
||||
# -----------------
|
||||
# Other Plugins
|
||||
# -----------------
|
||||
|
||||
map global goto f '<esc>:prompt -shell-script-candidates %{ fd --type f --hidden } file: %{ edit %val{text} }<ret>' -docstring "file"
|
||||
map global goto b '<esc>:prompt -buffer-completion buffer: %{ buffer %val{text} }<ret>' -docstring "buffer"
|
||||
|
||||
# Fzf Plugin
|
||||
plug "andreyorst/fzf.kak" config %{
|
||||
# map global user f ':fzf-mode<ret>v' -docstring 'fzf file in project'
|
||||
map global user b ':fzf-mode<ret>b' -docstring 'fzf current buffers'
|
||||
|
||||
map global user / ':fzf-mode<ret>g' -docstring 'fzf search in project'
|
||||
|
||||
# def fzf_file %{
|
||||
# evaluate-commands %sh{
|
||||
# printf "%s\n" ":fzf-mode<ret><esc>:fzf -items-cmd fd<ret>"
|
||||
# }
|
||||
# }
|
||||
|
||||
# Change FZF colors
|
||||
# FZF_DEFAULT_OPTS=" \
|
||||
# --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
|
||||
# --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
|
||||
# --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8"
|
||||
}
|
||||
|
||||
|
||||
|
||||
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/"
|
40
nate-work/dotfiles/kak/rc/close_tag.kak
Normal file
@ -0,0 +1,40 @@
|
||||
#use evaluate-commands to collapse undo
|
||||
define-command close_tag %{ evaluate-commands %{
|
||||
#revert removing indent after leaving insert mode
|
||||
try %{
|
||||
execute-keys -draft '<a-h>s[^\n]<ret>'
|
||||
} catch %{
|
||||
execute-keys -draft 'K<a-&>'
|
||||
}
|
||||
execute-keys ';Gg<a-;>'
|
||||
evaluate-commands %sh{
|
||||
tag_list=`echo "$kak_selection" | grep -P -o '(?<=<)[^>]*[^/>](?=>)' | tac | cut -d ' ' -f 1`
|
||||
close=
|
||||
close_stack=
|
||||
result=
|
||||
for tag in $tag_list ; do
|
||||
if [ `echo $tag | cut -c 1` = / ] ; then
|
||||
close=${tag#/}
|
||||
close_stack=$close\\n$close_stack
|
||||
else
|
||||
if [ $kak_opt_filetype != xml ] ; then
|
||||
case $tag in
|
||||
#self-closing tags
|
||||
area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr) continue ;;
|
||||
esac
|
||||
fi
|
||||
if [ $tag = $close ] ; then
|
||||
close_stack=${close_stack#*\\n}
|
||||
close=`echo $close_stack | head -n 1`
|
||||
else
|
||||
result=$tag
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
[ -z $result ] && echo "fail 'no un-closed tag'"
|
||||
echo "execute-keys -with-hooks \;i<lt>/$result><esc>"
|
||||
}
|
||||
}}
|
||||
|
||||
map global user c ':close_tag<ret>' -docstring "Close tag"
|
60
nate-work/dotfiles/kak/rc/fzf_git.kak
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
define-command fzzf -params .. %{ evaluate-commands %sh{
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case $1 in
|
||||
(-items-cmd) shift; items_cmd="$1" ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# fzf_tmp=$(mktemp -d "${TMPDIR:-/tmp}"/fzfgit.kak.XXXXXX)
|
||||
# fzfcmd="${fzf_tmp}/fzfcmd"
|
||||
# result="${fzf_tmp}/result"
|
||||
|
||||
# (
|
||||
# shell_path="$(command -v sh)"
|
||||
# if [ -n "${shell_path}" ]; then
|
||||
# # portable shebang
|
||||
# printf "%s\n" "#!${shell_path}"
|
||||
# # set SHELL because fzf preview uses it
|
||||
# printf "%s\n" "SHELL=${shell_path}"
|
||||
# fi
|
||||
# # compose entire fzf command with all args into single file which will be executed later
|
||||
# # printf "%s\n" "export FZF_DEFAULT_OPTS=\"${kak_opt_fzf_default_opts:-}\""
|
||||
# printf "%s\n" "cd \"${PWD}\" && $items_cmd | fzf > $result"
|
||||
# printf "%s\n" "evaluate-commands -client ${kak_client} edit -existing $file" | kak -p "${kak_session}"
|
||||
# printf "%s\n" "rm ${fzfcmd}"
|
||||
# printf "%s\n" "fg"
|
||||
# ) >> "${fzfcmd}"
|
||||
# chmod 755 "${fzfcmd}"
|
||||
|
||||
kill -TSTP $kak_client_pid
|
||||
cd `pwd` && $items_cmd | \
|
||||
fzf | \
|
||||
xargs printf "evaluate-commands -client ${kak_client} edit -existing %s\n" | \
|
||||
kak -p
|
||||
fg
|
||||
|
||||
# cmd="terminal $fzfcmd"
|
||||
|
||||
# Tells kakoune to open a terminal and run $fzfcmd
|
||||
# printf "%s\n" "$fzfcmd"
|
||||
|
||||
# ( while [ -e "${fzfcmd}" ]; do sleep 0.1; done
|
||||
# # printf "%s\n" "evaluate-commands -client ${kak_client} edit -existing ~/out.txt" | kak -p "${kak_session}"
|
||||
# if [ -s "${result}" ]; then
|
||||
# file=$(cat $result)
|
||||
# printf "%s\n" "evaluate-commands -client ${kak_client} edit -existing $file" | kak -p "${kak_session}"
|
||||
|
||||
# fi
|
||||
# rm -rf $fzf_temp
|
||||
# ) > /dev/null 2>&1 < /dev/null &
|
||||
|
||||
# Bring kakoune back into the foreground
|
||||
}}
|
||||
|
||||
# define-command fzf-project %{ fzzf -items-cmd 'fd -tfile' }
|
||||
|
||||
# map global user f ':fzf-project<ret>' -docstring 'fzf current project'
|
||||
|
@ -17,5 +17,5 @@ QuietSuccess=true
|
||||
[PasswordGenerator]
|
||||
AdditionalChars=
|
||||
ExcludedChars=
|
||||
Length=20
|
||||
Length=25
|
||||
SpecialChars=false
|
26
nate-work/dotfiles/macchiato.gitconfig
Normal file
@ -0,0 +1,26 @@
|
||||
[delta "Catppuccin Macchiato"]
|
||||
blame-palette = "#24273a #1e2030 #181926 #363a4f #494d64"
|
||||
commit-decoration-style = "box ul"
|
||||
dark = true
|
||||
file-decoration-style = "#cad3f5"
|
||||
file-style = "#cad3f5"
|
||||
hunk-header-decoration-style = "box ul"
|
||||
hunk-header-file-style = "bold"
|
||||
hunk-header-line-number-style = "bold #a5adcb"
|
||||
hunk-header-style = "file line-number syntax"
|
||||
line-numbers = true
|
||||
line-numbers-left-style = "#6e738d"
|
||||
line-numbers-minus-style = "bold #ed8796"
|
||||
line-numbers-plus-style = "bold #a6da95"
|
||||
line-numbers-right-style = "#6e738d"
|
||||
line-numbers-zero-style = "#6e738d"
|
||||
# 25% red 75% base
|
||||
minus-emph-style = "bold syntax #564052"
|
||||
# 10% red 90% base
|
||||
minus-style = "syntax #383143"
|
||||
# 25% green 75% base
|
||||
plus-emph-style = "bold syntax #455552"
|
||||
# 10% green 90% base
|
||||
plus-style = "syntax #313943"
|
||||
# Should match the name of the bat theme
|
||||
syntax-theme = "Catppuccin-macchiato"
|
23
nate-work/dotfiles/mako/config
Normal file
@ -0,0 +1,23 @@
|
||||
font=Overpass Nerd Font 20
|
||||
|
||||
background-color=#24273a
|
||||
text-color=#cad3f5
|
||||
width=630
|
||||
height=400
|
||||
padding=10
|
||||
margin=20
|
||||
progress-color=over #eceff480
|
||||
icon-path=/usr/share/icons/Arc-X-D
|
||||
max-icon-size=140
|
||||
layer=overlay
|
||||
|
||||
border-size=5
|
||||
border-radius=8
|
||||
border-color=#b7bdf8
|
||||
|
||||
default-timeout=5000
|
||||
|
||||
[urgency=high]
|
||||
|
||||
ignore-timeout=1
|
||||
|
@ -14,13 +14,14 @@ 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
|
||||
@ -29,6 +30,7 @@ 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 /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec lxqt-policykit-agent
|
||||
|
||||
# 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 /usr/share/sway/scripts/grimshot --notify save output
|
||||
bindsym $mod+Shift+p exec ~/.config/sway/scripts/screenshot.sh clipboard
|
||||
bindsym $mod+p exec ~/.config/sway/scripts/screenshot.sh
|
||||
#
|
||||
# Keybindings List
|
@ -9,4 +9,5 @@
|
||||
# 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 * adaptive_sync on
|
||||
output DP-3 resolution 3840x2160@240.084Hz position 0,0
|
||||
output * adaptive_sync off
|
@ -41,8 +41,8 @@ font pango:Overpass Nerd Font 12
|
||||
smart_borders on
|
||||
|
||||
# Set wallpaper:
|
||||
#exec_always swaybg -i /home/nate/.config/sway/wallpapers/ign-0000.png
|
||||
exec_always /home/nate/.config/sway/scripts/background.sh
|
||||
exec_always swaybg -i /home/nate/.config/sway/wallpapers/nix-black-4k.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,31 +71,28 @@ bar {
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
set $opacity 0.88
|
||||
set $opacity 0.8
|
||||
set $floating_window floating enable, resize set width 1030 height 710, opacity 1.0
|
||||
|
||||
for_window {
|
||||
[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
|
||||
[class=".*"] opacity 1.0
|
||||
[app_id=".*"] opacity 1.0
|
||||
[app_id="foot"] opacity $opacity
|
||||
[app_id="thunar"] opacity $opacity
|
||||
|
||||
# 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 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
PID_FILE="background.pid"
|
||||
WP_LOC="/home/nate/.config/sway/wallpapers"
|
||||
PREV_WP=""
|
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# usage: import-gsettings
|
||||
config="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini"
|
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SCALE_FILE="scale.txt"
|
||||
DIRNAME="/tmp/$(ls /tmp | grep scale.sh | head -n 1)"
|
33
nate-work/dotfiles/sway/scripts/screenshot.sh
Executable file
@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env 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)}')
|
||||
|
||||
if [ "$1" == "clipboard" ]; then
|
||||
case $selected in
|
||||
active)
|
||||
grimshot --notify copy active;;
|
||||
screen)
|
||||
grimshot --notify copy screen;;
|
||||
output)
|
||||
grimshot --notify copy output;;
|
||||
area)
|
||||
grimshot --notify copy area;;
|
||||
window)
|
||||
grimshot --notify copy window;;
|
||||
esac
|
||||
else
|
||||
case $selected in
|
||||
active)
|
||||
grimshot --notify save active;;
|
||||
screen)
|
||||
grimshot --notify save screen;;
|
||||
output)
|
||||
grimshot --notify save output;;
|
||||
area)
|
||||
grimshot --notify save area;;
|
||||
window)
|
||||
grimshot --notify save window;;
|
||||
esac
|
||||
fi
|
Before Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 221 KiB |
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 218 KiB |
Before Width: | Height: | Size: 772 KiB After Width: | Height: | Size: 772 KiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 344 KiB After Width: | Height: | Size: 344 KiB |
Before Width: | Height: | Size: 591 KiB After Width: | Height: | Size: 591 KiB |
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 138 KiB |
BIN
nate-work/dotfiles/sway/wallpapers/nix-black-4k.png
Normal file
After Width: | Height: | Size: 68 KiB |
38
nate-work/dotfiles/swaylock/boot-config
Normal file
@ -0,0 +1,38 @@
|
||||
image=~/.config/swaylock/lock.png
|
||||
clock
|
||||
indicator
|
||||
ignore-empty-password
|
||||
show-failed-attempts
|
||||
|
||||
font=Overpass Nerd Font Mono
|
||||
timestr=%I:%M %p
|
||||
datestr=%A %b %e
|
||||
|
||||
bs-hl-color=f4dbd6
|
||||
caps-lock-bs-hl-color=f4dbd6
|
||||
caps-lock-key-hl-color=a6da95
|
||||
inside-color=00000000
|
||||
inside-clear-color=00000000
|
||||
inside-caps-lock-color=00000000
|
||||
inside-ver-color=00000000
|
||||
inside-wrong-color=00000000
|
||||
key-hl-color=67bf4a
|
||||
layout-bg-color=00000000
|
||||
layout-border-color=00000000
|
||||
layout-text-color=cad3f5
|
||||
line-color=00000000
|
||||
line-clear-color=00000000
|
||||
line-caps-lock-color=00000000
|
||||
line-ver-color=00000000
|
||||
line-wrong-color=00000000
|
||||
ring-color=b7bdf8
|
||||
ring-clear-color=f4dbd6
|
||||
ring-caps-lock-color=f5a97f
|
||||
ring-ver-color=8aadf4
|
||||
ring-wrong-color=ee99a0
|
||||
separator-color=00000000
|
||||
text-color=363a4f
|
||||
text-clear-color=f4dbd6
|
||||
text-caps-lock-color=f5a97f
|
||||
text-ver-color=8aadf4
|
||||
text-wrong-color=ee99a0
|
41
nate-work/dotfiles/swaylock/config
Normal file
@ -0,0 +1,41 @@
|
||||
screenshot
|
||||
effect-pixelate=18
|
||||
effect-vignette=0.7:0.5
|
||||
clock
|
||||
indicator-idle-visible
|
||||
ignore-empty-password
|
||||
show-failed-attempts
|
||||
|
||||
font=Overpass Nerd Font Mono
|
||||
timestr=%I:%M %p
|
||||
datestr=%A %b %e
|
||||
fade-in=0.5
|
||||
|
||||
bs-hl-color=f4dbd6
|
||||
caps-lock-bs-hl-color=f4dbd6
|
||||
caps-lock-key-hl-color=a6da95
|
||||
inside-color=666a8f
|
||||
inside-clear-color=00000000
|
||||
inside-caps-lock-color=00000000
|
||||
inside-ver-color=00000000
|
||||
inside-wrong-color=00000000
|
||||
key-hl-color=67bf4a
|
||||
layout-bg-color=00000000
|
||||
layout-border-color=00000000
|
||||
layout-text-color=cad3f5
|
||||
line-color=00000000
|
||||
line-clear-color=00000000
|
||||
line-caps-lock-color=00000000
|
||||
line-ver-color=00000000
|
||||
line-wrong-color=00000000
|
||||
ring-color=b7bdf8
|
||||
ring-clear-color=f4dbd6
|
||||
ring-caps-lock-color=f5a97f
|
||||
ring-ver-color=8aadf4
|
||||
ring-wrong-color=ee99a0
|
||||
separator-color=00000000
|
||||
text-color=363a4f
|
||||
text-clear-color=f4dbd6
|
||||
text-caps-lock-color=f5a97f
|
||||
text-ver-color=8aadf4
|
||||
text-wrong-color=ee99a0
|