Compare commits

...

22 commits

Author SHA1 Message Date
vorboyvo e94d66e9b2 Added debug thing for kakoune markdown hook. 2025-02-08 13:28:13 -05:00
vorboyvo 33fdd7c94c Added a bunch of things. 2025-01-31 11:11:28 -05:00
vorboyvo 3f055cb0af Added supported locales. 2025-01-31 11:11:02 -05:00
vorboyvo 4b17cf48e7 Changed Inter to Rubik for waybar and updated some icons. 2025-01-31 11:10:34 -05:00
vorboyvo 1f376bf403 Added missing Nunito package file. 2025-01-31 11:09:51 -05:00
vorboyvo f6878f9a3b Did a lot of Sway stuff, most notably swaysome/multimonitor setup. 2025-01-31 11:09:26 -05:00
vorboyvo dfa137c5d4 Moved kak-lsp to snippets/kakoune.nix.
Added autocompile for md and Rmd.
2025-01-31 11:07:05 -05:00
vorboyvo 863dd4fd4c Updated clifm and fixed pager setting. 2025-01-31 11:06:22 -05:00
vorboyvo e969a5a6e8 Added package for Nunito font. 2025-01-31 11:04:16 -05:00
vorboyvo d588aaeaae Removed python and installed kalker. Also removed some unused stuff. 2024-12-30 21:47:35 -05:00
vorboyvo a31feb1852 Added greetd and tuigreet. 2024-12-30 21:46:31 -05:00
vorboyvo 257bfd61b6 Removed all languages but python and latex from home manager config. 2024-12-27 16:33:50 -05:00
vorboyvo cf1a0af296 Finally put in full LSP keybinds. 2024-12-27 16:33:05 -05:00
vorboyvo e67cebfef2 Updated flake.lock. 2024-12-27 16:09:32 -05:00
vorboyvo 51c60ae4f1 Added nwg-displays. 2024-12-25 10:42:41 -05:00
vorboyvo a87ac8cba9 Updated todo. 2024-12-25 10:42:33 -05:00
vorboyvo 22afbd90f9 Added emacs. Added Scala stuff. 2024-12-24 15:58:45 -05:00
vorboyvo d205139164 Updated todo. 2024-12-17 21:58:16 -05:00
vorboyvo a4ef5a74ef Updated fonts and symbols stuff. 2024-12-17 21:56:38 -05:00
vorboyvo 43ae001367 Updated clifm for pager bug and changed pager size back to 1. 2024-12-13 18:55:15 -05:00
vorboyvo c6edff826e Updated todo. 2024-12-11 11:06:47 -05:00
vorboyvo adc163c9e3 Added shortcuts Mod+Home and Mod+End to move workspaces to different displays. 2024-12-11 11:06:13 -05:00
14 changed files with 220 additions and 113 deletions

View file

@ -40,11 +40,11 @@
]
},
"locked": {
"lastModified": 1733754861,
"narHash": "sha256-3JKzIou54yjiMVmvgdJwopekEvZxX3JDT8DpKZs4oXY=",
"lastModified": 1735053786,
"narHash": "sha256-Gm+0DcbUS338vvkwyYWms5jsWlx8z8MeQBzcnIDuIkw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "9ebaa80a227eaca9c87c53ed515ade013bc2bca9",
"rev": "35b98d20ca8f4ca1f6a2c30b8a2c8bb305a36d84",
"type": "github"
},
"original": {
@ -81,7 +81,7 @@
"narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=",
"rev": "f19bd752910bbe3a861c9cad269bd078689d50fe",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/f19bd752910bbe3a861c9cad269bd078689d50fe.tar.gz"
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/f19bd752910bbe3a861c9cad269bd078689d50fe.tar.gz?rev=f19bd752910bbe3a861c9cad269bd078689d50fe"
},
"original": {
"type": "tarball",
@ -90,11 +90,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1733581040,
"narHash": "sha256-Qn3nPMSopRQJgmvHzVqPcE3I03zJyl8cSbgnnltfFDY=",
"lastModified": 1734649271,
"narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "22c3f2cf41a0e70184334a958e6b124fb0ce3e01",
"rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507",
"type": "github"
},
"original": {

View file

@ -47,6 +47,10 @@
# Select internationalization properties.
i18n.defaultLocale = "fr_CA.UTF-8";
i18n.supportedLocales = [
"en_CA.UTF-8/UTF-8"
"fr_CA.UTF-8/UTF-8"
];
console = {
font = "Lat2-Terminus16";
keyMap = "us";
@ -158,12 +162,22 @@
# $ nix search wget
environment.systemPackages = with pkgs; [
# neovim
greetd.tuigreet
ntfs3g
kakoune
git
gay # very important, do not remove
];
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.lib.getExe pkgs.greetd.tuigreet} --cmd 'zsh -c sway'";
};
};
};
# Add Steam, which cannot be installed through home manager (boo!)
programs.steam = {
enable = true;

View file

@ -9,6 +9,7 @@ rec {
../../snippets/zsh.nix
../../snippets/taskwarrior.nix
../../snippets/kakoune.nix
../../snippets/emacs.nix
../../snippets/clifm.nix
../../snippets/git.nix
../../snippets/sway.nix
@ -54,34 +55,16 @@ rec {
# Install packages
home.packages = with pkgs;
let
mons = callPackage ../../pkgs/mons/mons.nix { };
archivo = callPackage ../../pkgs/archivo/archivo.nix { };
nunito = callPackage ../../pkgs/nunito/nunito.nix { };
highway-gothic = callPackage ../../pkgs/highway-gothic/highway-gothic.nix { };
olympus = callPackage ../../pkgs/olympus/package.nix { };
kakmerge = callPackage ../../pkgs/kakmerge/kakmerge.nix { };
# xdg-terminal-exec = callPackage ../../pkgs/xdg-terminal-exec/xdg-terminal-exec.nix { };
in [ gcc tree-sitter rustup ] ++ # Basic dev tools
in
[ marksman nil ] ++ # Language servers except those installed through package sections
[ texliveFull texlab ] ++ # LaTeX
# (with ocamlPackages; [
# ocaml
# opam
# dune_3
# dune-release
# merlin
# ocaml-lsp
# odoc
# ocamlformat
# utop
# ]) ++ # OCaml
# [ rustup ] ++ # Rust
# [ go gopls ] ++ # Golang
# (with elmPackages; [ elm elm-language-server elm-format elm-test ]) ++
[ (python3.withPackages (ppkgs: with ppkgs;[
pyyaml python-lsp-server
])) ] ++ # I guess.....
[
kak-lsp
brightnessctl
grim
slurp
@ -90,41 +73,44 @@ rec {
upower
glib # provides trash and mount (latter may supplant udisks2?)
xdg-terminal-exec
nwg-displays
kalker
] ++ # Basic utilities
[ bitwarden-cli htop snore hledger hledger-ui ]
++ # Personalized selection of command-line (CLI/TUI) apps
[ defaultPrograms.terminal ] ++ # Terminal emulator
[
evince
imv
vlc
pavucontrol
font-manager
] ++ # Basic graphical apps
[
libreoffice
geary
signal-desktop
element-desktop
prismlauncher
mumble
gimp
inkscape
deluge-gtk
deluge-gtk # Client BitTorrent
shotwell
lorien
keepassxc
zulip
filezilla
bitwarden
josm
activate-linux
remmina
] ++ # Personalized selection of graphical apps
[
olympus
shticker-book-unwritten
] ++ # Games
[ swaybg bemenu j4-dmenu-desktop ] ++ # Sway- and Wayland-related packages
[
noto-fonts
inter
redhat-official-fonts
overpass
ibm-plex
@ -132,28 +118,22 @@ rec {
archivo
highway-gothic
merriweather-sans
paratype-pt-sans
paratype-pt-serif
libertinus
roboto
font-awesome
lato
merriweather
openmoji-black
openmoji-color
] ++ # Fonts
# [ papirus-icon-theme ] ++ # Icons
# [ vanilla-dmz ] ++ # Cursor
[ kakmerge jetbrains.idea-community ] ++ # Temp
[ kakmerge qgo gnugo hunspell hunspellDicts.fr-any hunspellDicts.fr-moderne hunspellDicts.fr-classique ] ++ # Temp
[ ];
programs.home-manager.enable = true;
# programs.git = {
# enable = true;
# userName = "vorboyvo";
# userEmail = "mrsirofvibe@outlook.com";
# extraConfig = {
# init.defaultBranch = "main";
# core.editor = "kak";
# };
# };
programs.swaylock = {
enable = true;
settings = { font-size = 14; };
@ -173,9 +153,15 @@ rec {
};
# configure fonts correctly
fonts.fontconfig.enable = true;
xdg.configFile."fontconfig/conf.d/20-default.fonts.conf".source =
../../extra/20-default-fonts.conf;
fonts.fontconfig = {
enable = true;
defaultFonts = {
sansSerif = [ "Rubik" "Noto Sans" "DejaVu Sans" ];
serif = [ "Noto Serif" "DejaVu Serif" ];
monospace = [ "Noto Mono" ];
emoji = [ "OpenMoji" ];
};
};
# terminal emulator
programs.alacritty.enable = true;
@ -219,7 +205,7 @@ rec {
enable = true;
settings = {
global = {
font = "Red Hat Display 12";
font = "Rubik 12";
mouse_left_click = "do_action, close_current";
mouse_middle_click = "close_all";
mouse_right_click = "close_current";

25
pkgs/nunito/flake.lock Normal file
View file

@ -0,0 +1,25 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1710470187,
"narHash": "sha256-l2R47RqhdEUYrMrQjdFKhxtqprkJjIE89qJx3iEVv+U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f242fc768bdfcf91d9094a8a8f66551324bf1a47",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

13
pkgs/nunito/flake.nix Normal file
View file

@ -0,0 +1,13 @@
{
description = "Flake containing Nunito font";
outputs = { self, nixpkgs }: {
packages.x86_64-linux.nunito =
let pkgs = import nixpkgs { system = "x86_64-linux"; };
in pkgs.callPackage ./nunito.nix {};
packages.x86_64-linux.default = self.packages.x86_64-linux.nunito;
};
}

19
pkgs/nunito/nunito.nix Normal file
View file

@ -0,0 +1,19 @@
{ pkgs }:
with pkgs;
stdenv.mkDerivation rec {
name = "archivo";
version = "43d16f9";
src = fetchFromGitHub {
owner = "googlefonts";
repo = "nunito";
rev = version;
hash = "sha256-yZ+pPLcgyWRa8i3cn1SwJUskBzUl1na2mndhok1mMok=";
};
# sourceRoot = "fonts/ttf";
installPhase = ''
mkdir -p $out/share/fonts/truetype
cp -a fonts/variable/*.ttf $out/share/fonts/truetype
'';
}

View file

@ -1,19 +1,25 @@
{pkgs, ...}:
{lib, pkgs, ...}:
let
overlay = (final: prev: {
clifm = prev.clifm.overrideAttrs (old: {
version = "1.22.2";
version = "1.23";
src = prev.fetchFromGitHub {
owner = "leo-arch";
repo = prev.clifm.pname;
rev = "bc619e7";
hash = "sha256-mc1QdTygOBq+R90QT6pabpLZN5/Xw0gVy62CyhxKpfw=";
rev = "v1.23";
hash = "sha256-FtlLz77yy/QfRyAhJSh5juCSPCZ921sTGhuYJzCusus=";
};
});
});
file_picker = pkgs.writeScriptBin "file_picker" (builtins.readFile "${pkgs.clifm}/share/clifm/plugins/file_picker.sh");
in
{
home.packages = with pkgs.extend overlay; [ atool fzf xdragon unzip zip sshfs clifm ];
home.packages = with pkgs.extend overlay; [ atool fzf xdragon unzip zip sshfs clifm ]
++ [ file_picker ];
xdg.configFile."clifm/profiles/default/clifmrc".source = ./clifm/clifmrc;
xdg.configFile."clifm/profiles/default/mimelist.clifm".source = ./clifm/mimelist.clifm;
home.sessionVariables = {
CLIFM_TERM = "alacritty"; # TODO UNHARDCODE THIS
CLIFM_TEMPLATES_DIR = "$HOME/Modèles";
};
}

View file

@ -70,7 +70,7 @@
# >1: Run the pager whenever the amount of files in the current directory is
# greater than or equal to this value (say, 1000).
;Pager=0
Pager=60
Pager=0
# How to list files in the pager. Possible values:
# auto: use the current listing mode
@ -175,8 +175,7 @@ LongViewMode=true
# If running in long mode, this setting is overriden by MinFilenameTrim
# whenever MaxFilenameLen is smaller than MinFilenameTrim.
;MaxFilenameLen=20
;MaxFilenameLen=-1
MaxFilenameLen=100
MaxFilenameLen=-1
# Trim file names longer than MaxFilenameLen.
;TrimNames=true

6
snippets/emacs.nix Normal file
View file

@ -0,0 +1,6 @@
{ pkgs, ... }:
{
programs.emacs = {
enable = true;
};
}

View file

@ -42,15 +42,16 @@
option = "filetype=markdown";
commands = "set-option window lintcmd \"proselint\"";
}
# {
# name = "BufSetOption";
# option = "filetype=markdown";
# commands = ''
# hook buffer BufWritePost .* %{ %sh{
#
# } };
# '';
# }
{
name = "BufSetOption";
option = "filetype=markdown";
commands = "hook buffer BufWritePost .* %{ echo %sh{ pandoc -o \"\${kak_buffile%.md}.pdf\" \"$kak_buffile\" 2>&1 } }";
}
{
name = "BufCreate";
option = ".*\.Rmd";
commands = "hook buffer BufWritePost .* %{ nop %sh{ Rscript -e \"rmarkdown::render(\\\"$kak_buffile\\\", 'pdf_document')\" } }";
}
];
keyMappings = [
# Define select all
@ -60,25 +61,10 @@
effect = "*%s<ret>";
docstring = "Select all";
}
# Define usermode yank/copy and paste
{
key = "y";
mode = "user";
effect = "<a-|> wl-copy<ret>";
}
{
key = "p";
mode = "user";
effect = "<a-!> wl-paste -n<ret>";
}
{
key = "P";
mode = "user";
effect = "! wl-paste -n<ret>";
}
];
};
extraConfig = ''
extraConfig =
''
# highlight trailing whitespace
add-highlighter global/trailing-whitespace regex '\h+$' 0:Error
@ -93,9 +79,23 @@
eval %sh{kak-lsp --kakoune -s $kak_session}
lsp-enable
'';
''
+
''
map global user l ':enter-user-mode lsp<ret>' -docstring 'LSP mode'
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 f '<a-semicolon>lsp-object Function Method<ret>' -docstring 'LSP function or method'
map global object t '<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'
'' # LSP mappings
+
"";
};
home.packages = with pkgs; [ kak-lsp ];
xdg.configFile."kak-lsp/kak-lsp.toml".source =
./kakoune/kak-lsp.toml;

View file

@ -1,25 +1,31 @@
{ lib, pkgs, ... }@inputs:
{ lib, pkgs, config, ... }@inputs:
let
extra = ../extra;
scripts = ../scripts;
dynscreenshot = pkgs.writeShellScript "dynscreenshot"
(builtins.readFile "${scripts}/dynscreenshot.sh");
changebrightness = pkgs.writeShellScript "changebrightness"
(builtins.readFile "${scripts}/changebrightness.sh");
mod = "Mod4";
dmenuCommand = builtins.readFile "${scripts}/dmenu.sh";
shutdownMenu = pkgs.writeShellScript "shutdownmenu"
(builtins.readFile "${scripts}/shutdownmenu.sh");
backgroundImage = "${extra}/kuwaitboat.jpg";
multiTouchGesturesConfig = ''
bindgesture swipe:4:up focus parent
bindgesture swipe:4:left workspace prev
bindgesture swipe:4:right workspace next
bindgesture swipe:3:up focus up
bindgesture swipe:3:down focus down
bindgesture swipe:3:left focus left
bindgesture swipe:3:right focus right
'';
in {
wayland.windowManager.sway = {
enable = true;
config = rec {
config = {
terminal = "${pkgs.lib.getExe inputs.config.defaultPrograms.terminal}";
modifier = mod;
fonts = {
names = [ "Red Hat Display" ];
names = [ "Rubik" ];
style = "Regular";
size = 12.0;
};
@ -46,7 +52,7 @@ in {
"Print" =
"exec grim - | wl-copy && wl-paste > ${screenshotPath}"; # Take screenshot of whole screen, save it, and copy it to clipboard
"Shift+Print" = ''
exec swaymsg -t get_tree | jq -r '.. | select(.focused?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | grim -g - | wl-copy && wl-paste > ${screenshotPath}''; # Take screenshot of current window, save it, and copy it to clipboard
exec swaymsg -t get_tree | ${pkgs.lib.getExe pkgs.jq} -r '.. | select(.focused?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | grim -g - | wl-copy && wl-paste > ${screenshotPath}''; # Take screenshot of current window, save it, and copy it to clipboard
"Ctrl+Print" =
"exec grim -g \"`slurp`\" - | wl-copy && wl-paste > ${screenshotPath}";
} // rec { # Function Media Keys
@ -65,20 +71,42 @@ in {
XF86AudioMedia =
"dunstctl set-paused toggle; dunstify -a 'dunst_mute_key' -u low -h string:x-dunst-stack-tag:dunst_mute_key 'Notifications mute toggled'";
XF86PowerOff =
"exec DMENU_COMMAND='${dmenuCommand}' bash ${shutdownMenu}";
"exec DMENU_COMMAND='rofi -dmenu -prompt=\"Sélectionnez :\"' bash ${shutdownMenu}";
"${mod}+Pause" = XF86PowerOff;
} // {
"${mod}+space" = ''input "*" xkb_switch_layout next'';
"${mod}+Shift+l" = "exec swaylock -f";
"${mod}+Home" = "move workspace to output left";
"${mod}+End" = "move workspace to output right";
} // lib.attrsets.mergeAttrsList (map (n: {
# Change focus between workspaces
"${mod}+${n}" = "exec swaysome focus ${n}";
# Move containers between workspaces
"${mod}+Shift+${n}" = "exec swaysome move ${n}";
# Focus workspace groups
"${mod}+Alt+${n}" = "exec swaysome focus-group ${n}";
# Move containers to other workspace groups
"${mod}+Alt+Shift+${n}" = "exec swaysome move-to-group ${n}";
}) (map toString (lib.lists.range 0 9)) ) // {
"${mod}+o" = "exec swaysome next-output";
"${mod}+Shift+o" = "exec swaysome prev-output";
"${mod}+Alt+o" = "exec swaysome workspace-group-next-output";
"${mod}+Alt+Shift+o" = "exec swaysome workspace-group-prev-output";
} // { });
menu = "j4-dmenu-desktop --no-generic --term=${
terminal
} --dmenu='${dmenuCommand}'";
# menu = "j4-dmenu-desktop --no-generic --term=${
# terminal
# } --dmenu='${dmenuCommand}'";
menu = "${pkgs.lib.getExe config.programs.rofi.package} -modes \"drun,run\" -show-icons -show drun";
focus.followMouse = false;
};
extraConfig = ''
output 'eDP-1' scale 1.50
'' + # Fractional scaling to 1.50
extraConfig =
''
output 'eDP-1' scale 1.50
'' + # Fractional scaling to 1.50
''
output 'DP-10' pos 0,0
output 'DP-9' pos 1920,0 transform 270
'' + # CTF Docking Station Monitors
''
exec gammastep-indicator
'' + # gammastep-indicator enables red shift
@ -88,15 +116,7 @@ in {
''
exec "activate-linux -c 0.5-0.5-0.5-0.5"
'' + # Enable Activate Linux
''
bindgesture swipe:4:up focus parent
bindgesture swipe:4:left workspace prev
bindgesture swipe:4:right workspace next
bindgesture swipe:3:up focus up
bindgesture swipe:3:down focus down
bindgesture swipe:3:left focus left
bindgesture swipe:3:right focus right
'' + # Multi-touch touchpad gestures
multiTouchGesturesConfig + # Multi-touch touchpad gestures
''
exec swaybg -i ${backgroundImage}
'' + # Background image
@ -108,6 +128,18 @@ in {
bindswitch --reload --locked lid:on output $laptop disable
bindswitch --reload --locked lid:off output $laptop enable
'' + # Clamshell mode
''
exec swaysome init 1
'' +
"";
};
programs.rofi = {
enable = true;
font = "Rubik 12";
package = pkgs.rofi-wayland;
theme = "android_notification";
};
home.packages = with pkgs; [ swaybg bemenu j4-dmenu-desktop swaysome ];
}

View file

@ -27,10 +27,10 @@ rec {
pulseaudio = {
format = "{volume}% {icon} {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-muted = "{volume}% {format_source}";
format-muted = "{volume}% 🔇 {format_source}";
format-source = "{volume}% ";
format-source-muted = "{volume}% ";
format-icons = [ "" "" ];
format-icons = [ "🔈" "🔊" ];
on-click = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
on-click-right = "exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
on-click-middle = "exec pavucontrol";
@ -38,7 +38,7 @@ rec {
on-scroll-down = "";
};
network = {
format-wifi = "{essid} ({signalStrength}%) ";
format-wifi = "{essid} ({signalStrength}%) ";
format-ethernet = "{ipaddr}/{cidr} ";
tooltip-format = "{ifname} via {gwaddr} ";
format-linked = "{ifname} (No IP) ";
@ -59,7 +59,7 @@ rec {
on-click = "exec blueman-manager";
on-click-right = "exec bluetoothctl disconnect";
};
cpu = { format = "{usage}% "; };
cpu = { format = "{usage}% 😀"; };
memory = { format = "{used:0.1f}GB/{total:0.1f}GB "; };
disk = {
format = "{used} ";
@ -99,7 +99,7 @@ rec {
}];
style = ''
* {
font-family: FontAwesome, Red Hat Display, sans-serif;
font-family: Rubik, "OpenMoji Color", sans-serif;
font-size: 12pt;
min-height: 20pt;
}

View file

@ -9,6 +9,7 @@
'';
profileExtra = ''
export QT_SCALE_FACTOR_ROUNDING_POLICY=RoundPreferFloor
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
# If running from tty1 start sway
# [ "$(tty)" = "/dev/tty1" ] && exec sway
'';

12
todo
View file

@ -1,7 +1,13 @@
# enable NUR and firefox extensions
configure firefox extensions through nix
set up a keyring and store networkmanager wifi passwords in there instead of plain text
media player daemon
dmenu files
add pandoc support for markdown rendering
configure per-display workspaces (swaysome?)
timewarrior for time tracking
kakoune:
- configure latex to do auto brackets/stuff like that
- latex figure out syntax highlighting weirdness?
sway:
- figure out multi monitor stuff
- set up colour theme and start applying it to applications
- configure workspaces
- fix bar icons