Compare commits

..

No commits in common. "e94d66e9b257c9bb92977297a0aefffb558735a5" and "bbeab9d1239b0de8985551b462e20a45c2d75291" have entirely different histories.

14 changed files with 113 additions and 220 deletions

View file

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

View file

@ -47,10 +47,6 @@
# 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";
@ -162,22 +158,12 @@
# $ 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,7 +9,6 @@ rec {
../../snippets/zsh.nix
../../snippets/taskwarrior.nix
../../snippets/kakoune.nix
../../snippets/emacs.nix
../../snippets/clifm.nix
../../snippets/git.nix
../../snippets/sway.nix
@ -55,16 +54,34 @@ 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
in [ gcc tree-sitter rustup ] ++ # Basic dev tools
[ 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
@ -73,44 +90,41 @@ 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 # Client BitTorrent
deluge-gtk
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
@ -118,22 +132,28 @@ rec {
archivo
highway-gothic
merriweather-sans
paratype-pt-sans
paratype-pt-serif
libertinus
roboto
lato
merriweather
openmoji-black
openmoji-color
font-awesome
] ++ # Fonts
# [ papirus-icon-theme ] ++ # Icons
# [ vanilla-dmz ] ++ # Cursor
[ kakmerge qgo gnugo hunspell hunspellDicts.fr-any hunspellDicts.fr-moderne hunspellDicts.fr-classique ] ++ # Temp
[ kakmerge jetbrains.idea-community ] ++ # 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; };
@ -153,15 +173,9 @@ rec {
};
# configure fonts correctly
fonts.fontconfig = {
enable = true;
defaultFonts = {
sansSerif = [ "Rubik" "Noto Sans" "DejaVu Sans" ];
serif = [ "Noto Serif" "DejaVu Serif" ];
monospace = [ "Noto Mono" ];
emoji = [ "OpenMoji" ];
};
};
fonts.fontconfig.enable = true;
xdg.configFile."fontconfig/conf.d/20-default.fonts.conf".source =
../../extra/20-default-fonts.conf;
# terminal emulator
programs.alacritty.enable = true;
@ -205,7 +219,7 @@ rec {
enable = true;
settings = {
global = {
font = "Rubik 12";
font = "Red Hat Display 12";
mouse_left_click = "do_action, close_current";
mouse_middle_click = "close_all";
mouse_right_click = "close_current";

View file

@ -1,25 +0,0 @@
{
"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
}

View file

@ -1,13 +0,0 @@
{
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;
};
}

View file

@ -1,19 +0,0 @@
{ 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,25 +1,19 @@
{lib, pkgs, ...}:
{pkgs, ...}:
let
overlay = (final: prev: {
clifm = prev.clifm.overrideAttrs (old: {
version = "1.23";
version = "1.22.2";
src = prev.fetchFromGitHub {
owner = "leo-arch";
repo = prev.clifm.pname;
rev = "v1.23";
hash = "sha256-FtlLz77yy/QfRyAhJSh5juCSPCZ921sTGhuYJzCusus=";
rev = "bc619e7";
hash = "sha256-mc1QdTygOBq+R90QT6pabpLZN5/Xw0gVy62CyhxKpfw=";
};
});
});
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 ]
++ [ file_picker ];
home.packages = with pkgs.extend overlay; [ atool fzf xdragon unzip zip sshfs clifm ];
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=0
Pager=60
# How to list files in the pager. Possible values:
# auto: use the current listing mode
@ -175,7 +175,8 @@ LongViewMode=true
# If running in long mode, this setting is overriden by MinFilenameTrim
# whenever MaxFilenameLen is smaller than MinFilenameTrim.
;MaxFilenameLen=20
MaxFilenameLen=-1
;MaxFilenameLen=-1
MaxFilenameLen=100
# Trim file names longer than MaxFilenameLen.
;TrimNames=true

View file

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

View file

@ -42,16 +42,15 @@
option = "filetype=markdown";
commands = "set-option window lintcmd \"proselint\"";
}
{
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')\" } }";
}
# {
# name = "BufSetOption";
# option = "filetype=markdown";
# commands = ''
# hook buffer BufWritePost .* %{ %sh{
#
# } };
# '';
# }
];
keyMappings = [
# Define select all
@ -61,10 +60,25 @@
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
@ -79,23 +93,9 @@
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,31 +1,25 @@
{ lib, pkgs, config, ... }@inputs:
{ lib, pkgs, ... }@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 = {
config = rec {
terminal = "${pkgs.lib.getExe inputs.config.defaultPrograms.terminal}";
modifier = mod;
fonts = {
names = [ "Rubik" ];
names = [ "Red Hat Display" ];
style = "Regular";
size = 12.0;
};
@ -52,7 +46,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 | ${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
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
"Ctrl+Print" =
"exec grim -g \"`slurp`\" - | wl-copy && wl-paste > ${screenshotPath}";
} // rec { # Function Media Keys
@ -71,42 +65,20 @@ 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='rofi -dmenu -prompt=\"Sélectionnez :\"' bash ${shutdownMenu}";
"exec DMENU_COMMAND='${dmenuCommand}' 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 = "${pkgs.lib.getExe config.programs.rofi.package} -modes \"drun,run\" -show-icons -show drun";
menu = "j4-dmenu-desktop --no-generic --term=${
terminal
} --dmenu='${dmenuCommand}'";
focus.followMouse = false;
};
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
extraConfig = ''
output 'eDP-1' scale 1.50
'' + # Fractional scaling to 1.50
''
exec gammastep-indicator
'' + # gammastep-indicator enables red shift
@ -116,7 +88,15 @@ in {
''
exec "activate-linux -c 0.5-0.5-0.5-0.5"
'' + # 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}
'' + # Background image
@ -128,18 +108,6 @@ 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: Rubik, "OpenMoji Color", sans-serif;
font-family: FontAwesome, Red Hat Display, sans-serif;
font-size: 12pt;
min-height: 20pt;
}

View file

@ -9,7 +9,6 @@
'';
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,13 +1,7 @@
configure firefox extensions through nix
# enable NUR and firefox extensions
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