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": { "locked": {
"lastModified": 1733754861, "lastModified": 1735053786,
"narHash": "sha256-3JKzIou54yjiMVmvgdJwopekEvZxX3JDT8DpKZs4oXY=", "narHash": "sha256-Gm+0DcbUS338vvkwyYWms5jsWlx8z8MeQBzcnIDuIkw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "9ebaa80a227eaca9c87c53ed515ade013bc2bca9", "rev": "35b98d20ca8f4ca1f6a2c30b8a2c8bb305a36d84",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -81,7 +81,7 @@
"narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=", "narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=",
"rev": "f19bd752910bbe3a861c9cad269bd078689d50fe", "rev": "f19bd752910bbe3a861c9cad269bd078689d50fe",
"type": "tarball", "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": { "original": {
"type": "tarball", "type": "tarball",
@ -90,11 +90,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1733581040, "lastModified": 1734649271,
"narHash": "sha256-Qn3nPMSopRQJgmvHzVqPcE3I03zJyl8cSbgnnltfFDY=", "narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "22c3f2cf41a0e70184334a958e6b124fb0ce3e01", "rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -47,6 +47,10 @@
# Select internationalization properties. # Select internationalization properties.
i18n.defaultLocale = "fr_CA.UTF-8"; i18n.defaultLocale = "fr_CA.UTF-8";
i18n.supportedLocales = [
"en_CA.UTF-8/UTF-8"
"fr_CA.UTF-8/UTF-8"
];
console = { console = {
font = "Lat2-Terminus16"; font = "Lat2-Terminus16";
keyMap = "us"; keyMap = "us";
@ -158,12 +162,22 @@
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# neovim # neovim
greetd.tuigreet
ntfs3g ntfs3g
kakoune kakoune
git git
gay # very important, do not remove 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!) # Add Steam, which cannot be installed through home manager (boo!)
programs.steam = { programs.steam = {
enable = true; enable = true;

View file

@ -9,6 +9,7 @@ rec {
../../snippets/zsh.nix ../../snippets/zsh.nix
../../snippets/taskwarrior.nix ../../snippets/taskwarrior.nix
../../snippets/kakoune.nix ../../snippets/kakoune.nix
../../snippets/emacs.nix
../../snippets/clifm.nix ../../snippets/clifm.nix
../../snippets/git.nix ../../snippets/git.nix
../../snippets/sway.nix ../../snippets/sway.nix
@ -54,34 +55,16 @@ rec {
# Install packages # Install packages
home.packages = with pkgs; home.packages = with pkgs;
let let
mons = callPackage ../../pkgs/mons/mons.nix { };
archivo = callPackage ../../pkgs/archivo/archivo.nix { }; archivo = callPackage ../../pkgs/archivo/archivo.nix { };
nunito = callPackage ../../pkgs/nunito/nunito.nix { };
highway-gothic = callPackage ../../pkgs/highway-gothic/highway-gothic.nix { }; highway-gothic = callPackage ../../pkgs/highway-gothic/highway-gothic.nix { };
olympus = callPackage ../../pkgs/olympus/package.nix { }; olympus = callPackage ../../pkgs/olympus/package.nix { };
kakmerge = callPackage ../../pkgs/kakmerge/kakmerge.nix { }; kakmerge = callPackage ../../pkgs/kakmerge/kakmerge.nix { };
# xdg-terminal-exec = callPackage ../../pkgs/xdg-terminal-exec/xdg-terminal-exec.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 [ marksman nil ] ++ # Language servers except those installed through package sections
[ texliveFull texlab ] ++ # LaTeX [ 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 brightnessctl
grim grim
slurp slurp
@ -90,41 +73,44 @@ rec {
upower upower
glib # provides trash and mount (latter may supplant udisks2?) glib # provides trash and mount (latter may supplant udisks2?)
xdg-terminal-exec xdg-terminal-exec
nwg-displays
kalker
] ++ # Basic utilities ] ++ # Basic utilities
[ bitwarden-cli htop snore hledger hledger-ui ] [ bitwarden-cli htop snore hledger hledger-ui ]
++ # Personalized selection of command-line (CLI/TUI) apps ++ # Personalized selection of command-line (CLI/TUI) apps
[ defaultPrograms.terminal ] ++ # Terminal emulator [ defaultPrograms.terminal ] ++ # Terminal emulator
[ [
evince
imv imv
vlc vlc
pavucontrol pavucontrol
font-manager
] ++ # Basic graphical apps ] ++ # Basic graphical apps
[ [
libreoffice libreoffice
geary
signal-desktop signal-desktop
element-desktop element-desktop
prismlauncher prismlauncher
mumble mumble
gimp gimp
inkscape inkscape
deluge-gtk deluge-gtk # Client BitTorrent
shotwell shotwell
lorien lorien
keepassxc keepassxc
zulip zulip
filezilla filezilla
bitwarden bitwarden
josm
activate-linux activate-linux
remmina
] ++ # Personalized selection of graphical apps ] ++ # Personalized selection of graphical apps
[ [
olympus olympus
shticker-book-unwritten shticker-book-unwritten
] ++ # Games ] ++ # Games
[ swaybg bemenu j4-dmenu-desktop ] ++ # Sway- and Wayland-related packages
[ [
noto-fonts noto-fonts
inter
redhat-official-fonts redhat-official-fonts
overpass overpass
ibm-plex ibm-plex
@ -132,28 +118,22 @@ rec {
archivo archivo
highway-gothic highway-gothic
merriweather-sans merriweather-sans
paratype-pt-sans
paratype-pt-serif paratype-pt-serif
libertinus libertinus
roboto roboto
font-awesome lato
merriweather
openmoji-black
openmoji-color
] ++ # Fonts ] ++ # Fonts
# [ papirus-icon-theme ] ++ # Icons # [ papirus-icon-theme ] ++ # Icons
# [ vanilla-dmz ] ++ # Cursor # [ 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.home-manager.enable = true;
# programs.git = {
# enable = true;
# userName = "vorboyvo";
# userEmail = "mrsirofvibe@outlook.com";
# extraConfig = {
# init.defaultBranch = "main";
# core.editor = "kak";
# };
# };
programs.swaylock = { programs.swaylock = {
enable = true; enable = true;
settings = { font-size = 14; }; settings = { font-size = 14; };
@ -173,9 +153,15 @@ rec {
}; };
# configure fonts correctly # configure fonts correctly
fonts.fontconfig.enable = true; fonts.fontconfig = {
xdg.configFile."fontconfig/conf.d/20-default.fonts.conf".source = enable = true;
../../extra/20-default-fonts.conf; defaultFonts = {
sansSerif = [ "Rubik" "Noto Sans" "DejaVu Sans" ];
serif = [ "Noto Serif" "DejaVu Serif" ];
monospace = [ "Noto Mono" ];
emoji = [ "OpenMoji" ];
};
};
# terminal emulator # terminal emulator
programs.alacritty.enable = true; programs.alacritty.enable = true;
@ -219,7 +205,7 @@ rec {
enable = true; enable = true;
settings = { settings = {
global = { global = {
font = "Red Hat Display 12"; font = "Rubik 12";
mouse_left_click = "do_action, close_current"; mouse_left_click = "do_action, close_current";
mouse_middle_click = "close_all"; mouse_middle_click = "close_all";
mouse_right_click = "close_current"; 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 let
overlay = (final: prev: { overlay = (final: prev: {
clifm = prev.clifm.overrideAttrs (old: { clifm = prev.clifm.overrideAttrs (old: {
version = "1.22.2"; version = "1.23";
src = prev.fetchFromGitHub { src = prev.fetchFromGitHub {
owner = "leo-arch"; owner = "leo-arch";
repo = prev.clifm.pname; repo = prev.clifm.pname;
rev = "bc619e7"; rev = "v1.23";
hash = "sha256-mc1QdTygOBq+R90QT6pabpLZN5/Xw0gVy62CyhxKpfw="; hash = "sha256-FtlLz77yy/QfRyAhJSh5juCSPCZ921sTGhuYJzCusus=";
}; };
}); });
}); });
file_picker = pkgs.writeScriptBin "file_picker" (builtins.readFile "${pkgs.clifm}/share/clifm/plugins/file_picker.sh");
in 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/clifmrc".source = ./clifm/clifmrc;
xdg.configFile."clifm/profiles/default/mimelist.clifm".source = ./clifm/mimelist.clifm; 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 # >1: Run the pager whenever the amount of files in the current directory is
# greater than or equal to this value (say, 1000). # greater than or equal to this value (say, 1000).
;Pager=0 ;Pager=0
Pager=60 Pager=0
# How to list files in the pager. Possible values: # How to list files in the pager. Possible values:
# auto: use the current listing mode # auto: use the current listing mode
@ -175,8 +175,7 @@ LongViewMode=true
# If running in long mode, this setting is overriden by MinFilenameTrim # If running in long mode, this setting is overriden by MinFilenameTrim
# whenever MaxFilenameLen is smaller than MinFilenameTrim. # whenever MaxFilenameLen is smaller than MinFilenameTrim.
;MaxFilenameLen=20 ;MaxFilenameLen=20
;MaxFilenameLen=-1 MaxFilenameLen=-1
MaxFilenameLen=100
# Trim file names longer than MaxFilenameLen. # Trim file names longer than MaxFilenameLen.
;TrimNames=true ;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"; option = "filetype=markdown";
commands = "set-option window lintcmd \"proselint\""; commands = "set-option window lintcmd \"proselint\"";
} }
# { {
# name = "BufSetOption"; name = "BufSetOption";
# option = "filetype=markdown"; option = "filetype=markdown";
# commands = '' commands = "hook buffer BufWritePost .* %{ echo %sh{ pandoc -o \"\${kak_buffile%.md}.pdf\" \"$kak_buffile\" 2>&1 } }";
# hook buffer BufWritePost .* %{ %sh{ }
# {
# } }; name = "BufCreate";
# ''; option = ".*\.Rmd";
# } commands = "hook buffer BufWritePost .* %{ nop %sh{ Rscript -e \"rmarkdown::render(\\\"$kak_buffile\\\", 'pdf_document')\" } }";
}
]; ];
keyMappings = [ keyMappings = [
# Define select all # Define select all
@ -60,25 +61,10 @@
effect = "*%s<ret>"; effect = "*%s<ret>";
docstring = "Select all"; 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 # highlight trailing whitespace
add-highlighter global/trailing-whitespace regex '\h+$' 0:Error add-highlighter global/trailing-whitespace regex '\h+$' 0:Error
@ -93,9 +79,23 @@
eval %sh{kak-lsp --kakoune -s $kak_session} eval %sh{kak-lsp --kakoune -s $kak_session}
lsp-enable 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 = xdg.configFile."kak-lsp/kak-lsp.toml".source =
./kakoune/kak-lsp.toml; ./kakoune/kak-lsp.toml;

View file

@ -1,25 +1,31 @@
{ lib, pkgs, ... }@inputs: { lib, pkgs, config, ... }@inputs:
let let
extra = ../extra; extra = ../extra;
scripts = ../scripts; scripts = ../scripts;
dynscreenshot = pkgs.writeShellScript "dynscreenshot"
(builtins.readFile "${scripts}/dynscreenshot.sh");
changebrightness = pkgs.writeShellScript "changebrightness" changebrightness = pkgs.writeShellScript "changebrightness"
(builtins.readFile "${scripts}/changebrightness.sh"); (builtins.readFile "${scripts}/changebrightness.sh");
mod = "Mod4"; mod = "Mod4";
dmenuCommand = builtins.readFile "${scripts}/dmenu.sh";
shutdownMenu = pkgs.writeShellScript "shutdownmenu" shutdownMenu = pkgs.writeShellScript "shutdownmenu"
(builtins.readFile "${scripts}/shutdownmenu.sh"); (builtins.readFile "${scripts}/shutdownmenu.sh");
backgroundImage = "${extra}/kuwaitboat.jpg"; 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 { in {
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = true; enable = true;
config = rec { config = {
terminal = "${pkgs.lib.getExe inputs.config.defaultPrograms.terminal}"; terminal = "${pkgs.lib.getExe inputs.config.defaultPrograms.terminal}";
modifier = mod; modifier = mod;
fonts = { fonts = {
names = [ "Red Hat Display" ]; names = [ "Rubik" ];
style = "Regular"; style = "Regular";
size = 12.0; size = 12.0;
}; };
@ -46,7 +52,7 @@ in {
"Print" = "Print" =
"exec grim - | wl-copy && wl-paste > ${screenshotPath}"; # Take screenshot of whole screen, save it, and copy it to clipboard "exec grim - | wl-copy && wl-paste > ${screenshotPath}"; # Take screenshot of whole screen, save it, and copy it to clipboard
"Shift+Print" = '' "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" = "Ctrl+Print" =
"exec grim -g \"`slurp`\" - | wl-copy && wl-paste > ${screenshotPath}"; "exec grim -g \"`slurp`\" - | wl-copy && wl-paste > ${screenshotPath}";
} // rec { # Function Media Keys } // rec { # Function Media Keys
@ -65,20 +71,42 @@ in {
XF86AudioMedia = XF86AudioMedia =
"dunstctl set-paused toggle; dunstify -a 'dunst_mute_key' -u low -h string:x-dunst-stack-tag:dunst_mute_key 'Notifications mute toggled'"; "dunstctl set-paused toggle; dunstify -a 'dunst_mute_key' -u low -h string:x-dunst-stack-tag:dunst_mute_key 'Notifications mute toggled'";
XF86PowerOff = XF86PowerOff =
"exec DMENU_COMMAND='${dmenuCommand}' bash ${shutdownMenu}"; "exec DMENU_COMMAND='rofi -dmenu -prompt=\"Sélectionnez :\"' bash ${shutdownMenu}";
"${mod}+Pause" = XF86PowerOff; "${mod}+Pause" = XF86PowerOff;
} // { } // {
"${mod}+space" = ''input "*" xkb_switch_layout next''; "${mod}+space" = ''input "*" xkb_switch_layout next'';
"${mod}+Shift+l" = "exec swaylock -f"; "${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=${ # menu = "j4-dmenu-desktop --no-generic --term=${
terminal # terminal
} --dmenu='${dmenuCommand}'"; # } --dmenu='${dmenuCommand}'";
menu = "${pkgs.lib.getExe config.programs.rofi.package} -modes \"drun,run\" -show-icons -show drun";
focus.followMouse = false; focus.followMouse = false;
}; };
extraConfig = '' extraConfig =
''
output 'eDP-1' scale 1.50 output 'eDP-1' scale 1.50
'' + # Fractional scaling to 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 exec gammastep-indicator
'' + # gammastep-indicator enables red shift '' + # gammastep-indicator enables red shift
@ -88,15 +116,7 @@ in {
'' ''
exec "activate-linux -c 0.5-0.5-0.5-0.5" exec "activate-linux -c 0.5-0.5-0.5-0.5"
'' + # Enable Activate Linux '' + # Enable Activate Linux
'' multiTouchGesturesConfig + # Multi-touch touchpad gestures
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
'' ''
exec swaybg -i ${backgroundImage} exec swaybg -i ${backgroundImage}
'' + # Background image '' + # Background image
@ -108,6 +128,18 @@ in {
bindswitch --reload --locked lid:on output $laptop disable bindswitch --reload --locked lid:on output $laptop disable
bindswitch --reload --locked lid:off output $laptop enable bindswitch --reload --locked lid:off output $laptop enable
'' + # Clamshell mode '' + # 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 = { pulseaudio = {
format = "{volume}% {icon} {format_source}"; format = "{volume}% {icon} {format_source}";
format-bluetooth = "{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 = "{volume}% ";
format-source-muted = "{volume}% "; format-source-muted = "{volume}% ";
format-icons = [ "" "" ]; format-icons = [ "🔈" "🔊" ];
on-click = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; on-click = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
on-click-right = "exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; on-click-right = "exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
on-click-middle = "exec pavucontrol"; on-click-middle = "exec pavucontrol";
@ -38,7 +38,7 @@ rec {
on-scroll-down = ""; on-scroll-down = "";
}; };
network = { network = {
format-wifi = "{essid} ({signalStrength}%) "; format-wifi = "{essid} ({signalStrength}%) ";
format-ethernet = "{ipaddr}/{cidr} "; format-ethernet = "{ipaddr}/{cidr} ";
tooltip-format = "{ifname} via {gwaddr} "; tooltip-format = "{ifname} via {gwaddr} ";
format-linked = "{ifname} (No IP) "; format-linked = "{ifname} (No IP) ";
@ -59,7 +59,7 @@ rec {
on-click = "exec blueman-manager"; on-click = "exec blueman-manager";
on-click-right = "exec bluetoothctl disconnect"; on-click-right = "exec bluetoothctl disconnect";
}; };
cpu = { format = "{usage}% "; }; cpu = { format = "{usage}% 😀"; };
memory = { format = "{used:0.1f}GB/{total:0.1f}GB "; }; memory = { format = "{used:0.1f}GB/{total:0.1f}GB "; };
disk = { disk = {
format = "{used} "; format = "{used} ";
@ -99,7 +99,7 @@ rec {
}]; }];
style = '' style = ''
* { * {
font-family: FontAwesome, Red Hat Display, sans-serif; font-family: Rubik, "OpenMoji Color", sans-serif;
font-size: 12pt; font-size: 12pt;
min-height: 20pt; min-height: 20pt;
} }

View file

@ -9,6 +9,7 @@
''; '';
profileExtra = '' profileExtra = ''
export QT_SCALE_FACTOR_ROUNDING_POLICY=RoundPreferFloor export QT_SCALE_FACTOR_ROUNDING_POLICY=RoundPreferFloor
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
# If running from tty1 start sway # If running from tty1 start sway
# [ "$(tty)" = "/dev/tty1" ] && exec 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 set up a keyring and store networkmanager wifi passwords in there instead of plain text
media player daemon media player daemon
dmenu files
add pandoc support for markdown rendering add pandoc support for markdown rendering
configure per-display workspaces (swaysome?)
timewarrior for time tracking 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