Merge branch 'main' of git.atlanticaweb.fr:alexandre/nixos-config

This commit is contained in:
Alexandre LUCAZEAU 2023-07-23 17:59:34 +02:00
commit 9219c624e6
36 changed files with 330 additions and 125 deletions

View File

@ -4,5 +4,5 @@
programs.bat = { programs.bat = {
enable = true; enable = true;
# } // (import "${configDir}/bat"); # } // (import "${configDir}/bat");
} // (import "/home/alexandre/git/nixos-config/hosts/dell-5590/nixpkgs/bat"); } // (import "/home/alexandre/git/nixos-config/hosts/dell-5590/home-manager/bat");
} }

View File

@ -97,8 +97,8 @@ bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace $ws9 bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace 10 bindsym $mod+Shift+0 move container to workspace 10
# Recharge le fichier de configuration ## # Recharge le fichier de configuration
bindsym $mod+Shift+C bindsym $mod+Shift+C reload
# Redemarre i3 mais concerve ce qui est lancé. Utilisable pour les MAJ # Redemarre i3 mais concerve ce qui est lancé. Utilisable pour les MAJ
bindsym $mod+Shift+R restart bindsym $mod+Shift+R restart
@ -113,7 +113,7 @@ bindsym $mod+d exec rofi -show drun -show-icons -modi drun
bar { bar {
font pango:DejaVu Sans Mono, FontAwesome 12 font pango:DejaVu Sans Mono, FontAwesome 12
position top position top
status_command i3status-rs ~/.config/i3status-rust/config-bottom.toml status_command i3status-rs ~/.config/i3status-rust/bar.toml
colors { colors {
separator #666666 separator #666666
background #222222 background #222222

View File

@ -0,0 +1,47 @@
[theme]
theme = "nord-dark"
[icons]
icons = "material-nf"
[[block]]
block = "disk_space"
path = "/"
format = "$icon $percentage"
format_alt = " $icon $available / $total "
info_type = "used"
interval = 60
warning = 20.0
alert = 10.0
[[block]]
block = "memory"
format = " $icon $mem_avail.eng(prefix:M)/$mem_total.eng(prefix:M)($mem_total_used_percents.eng(w:2)) "
[[block]]
block = "cpu"
interval = 1
[[block]]
block = "load"
interval = 1
format = "{1m}"
[[block]]
block = "sound"
[[block]]
block = "backlight"
[[block]]
block = "battery"
[[block]]
block = "kdeconnect"
format = " $icon {$bat_icon $bat_charge |}{$notif_icon |}{$network_icon$network_strength $network_type |}"
bat_good = 101
[[block]]
block = "time"
interval = 60
format = " $icon $timestamp.datetime(f:'%d/%m %R', l:fr_FR) "

View File

@ -0,0 +1,218 @@
;; Keyboard-centric user interface
(setq inhibit-startup-message t)
(scroll-bar-mode -1)
(tool-bar-mode -1)
(menu-bar-mode -1)
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
;; and `package-pinned-packages`. Most users will not need or want to do this.
;;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
(package-initialize)
(column-number-mode 't) ; show current column in status bar
(add-hook 'text-mode-hook 'turn-on-auto-fill)
(set-fringe-mode 10)
;; Use 4 spaces for one tab visually.
(setq tab-width 4)
(show-paren-mode t) ; highlight matching open and close parentheses
(global-hl-line-mode) ; highlight current line
(global-visual-line-mode t) ; wrap long lines
(setq split-window-preferred-function
'visual-fill-column-split-window-sensibly) ; wrap at window boundary
(global-whitespace-mode) ; enable whitespace handling by default
(setq
whitespace-style ; see (apropos 'whitespace-style)
'(face ; viz via faces
trailing ; trailing blanks visualized
lines-tail ; lines beyond whitespace-line-column visualized
space-before-tab
space-after-tab
newline ; lines with only blanks visualized
indentation ; spaces used for indent when config wants tabs
empty ; empty lines at beginning or end or buffer
)
whitespace-line-column 150) ; column at which whitespace-mode says the line is too long
;;(set-face-attribute 'default nil :font "JetBrains Mono" :height 150)
;; themes
(use-package doom-themes
:init (load-theme 'doom-nord t)
:init (doom-themes-org-config))
(setq disabled-command-function nil)
(setq inhibit-startup-screen t)
(setq visible-bell t)
;; Only y/n answers
(defalias 'yes-or-no-p 'y-or-n-p)
;; Save what you enter into minibuffer prompts
(setq history-length 25)
(savehist-mode 1)
;; Remember and restore the last cursor location of opened files
(save-place-mode 1)
;; Backup
(setq version-control t ;; Use version numbers for backups.
kept-new-versions 10 ;; Number of newest versions to keep.
kept-old-versions 0 ;; Number of oldest versions to keep.
delete-old-versions t ;; Don't ask to delete excess backup versions.
backup-by-copying t) ;; Copy all files, don't rename them.
(setq vc-make-backup-files t)
(setq backup-directory-alist '(("" . "~/.emacs.d/backup")))
(defvar emacs-autosave-directory
(concat user-emacs-directory "autosaves/")
"This variable dictates where to put auto saves. It is set to a
directory called autosaves located wherever your .emacs.d/ is
located.")
;; Sets all files to be backed up and auto saved in a single directory.
(setq backup-directory-alist
`((".*" . ,emacs-autosave-directory))
auto-save-file-name-transforms
`((".*" ,emacs-autosave-directory t)))
(setq calendar-week-start-day 1)
;; keybinding
(global-set-key "\C-cnj" 'org-journal-new-entry)
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-c g" 'gtd)
(use-package nix-mode
:mode ("\\.nix\\'" . nix-mode)
:hook (nix-mode . lsp-deferred))
(use-package magit)
(setq magit-fetch-modules-jobs 16); fetch 16 modules in parallel
(use-package which-key
:init (which-key-mode)
:config (setq which-key-idle-delay 0.5))
(autoload 'markdown-mode "markdown-mode"
"Major mode for editing Markdown files" t)
(add-to-list 'auto-mode-alist
'("\\.\\(?:md\\|markdown\\|mkd\\|mdown\\|mkdn\\|mdwn\\)\\'" . markdown-mode))
(autoload 'gfm-mode "markdown-mode"
"Major mode for editing GitHub Flavored Markdown files" t)
(add-to-list 'auto-mode-alist '("README\\.md\\'" . gfm-mode))
;; org-mode
(require 'org)
(require 'org-mouse)
(setq org-startup-folded t
org-pretty-entities t
org-hide-emphasis-markers t
org-startup-with-inline-images t
org-agenda-include-deadlines t
org-image-actual-width '(300))
;; files with ".org" open in org-mode
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(setq org-agenda-files '("/home/alexandre/Nextcloud/PRIVE/13_Org/backlog.org" "/home/alexandre/Nextcloud/PRIVE/13_Org/notes" "/home/alexandre/Nextcloud/PRIVE/13_Org/journal"))
(setq org-directory (concat (getenv "HOME") "/Nextcloud/PRIVE/13_Org/notes"))
(setq org-default-notes-file "~/Nextcloud/PRIVE/13_Org/backlog.org")
;;(setq org-capture-templates
;; '(("b" "Ajouter au backlog" entry
;; (file "~/Nextcloud/PRIVE/13_Org/backlog.org")
;; "* TODO %?" :empty-lines 1))
(setq org-capture-templates
'(("t" "TODO" entry (file+datetree "~/Nextcloud/PRIVE/13_Org/backlog.org")
"* TODO %? %^G \n %U" :empty-lines 1)
("s" "Scheduled TODO" entry (file+datetree "~/Nextcloud/PRIVE/13_Org/backlog.org")
"* TODO %? %^G \nSCHEDULED: %^t\n %U" :empty-lines 1)
("l" "Link" entry (file "~/Nextcloud/PRIVE/13_Org/backlog.org")
"* TODO %a %? %^G\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n")
("n" "Note" entry (file "~/Nextcloud/PRIVE/13_Org/backlog.org")
"* %? %^G\n%U" :empty-lines 1)
("j" "Journal" entry (file+datetree "~/Nextcloud/PRIVE/13_Org/backlog.org")
"* %? %^G\nEntered on %U\n")))
;; Org-Roam basic configuration
(use-package org-roam
:after org
:init (setq org-roam-v2-ack t) ;; Acknowledge V2 upgrade
:custom
(org-roam-directory (file-truename org-directory))
:config
(org-roam-setup)
(org-roam-db-autosync-mode)
:bind (("C-c n f" . org-roam-node-find)
("C-c n r" . org-roam-node-random)
("C-c n o" . org-open-at-point)
("C-c n i" . org-roam-node-insert)
;; (:map org-mode-map
;; (("C-c n i" . org-roam-node-insert)
;; ("C-c n t" . org-roam-tag-add)
;; ("C-c n a" . org-roam-alias-add)
;; ("C-c n l" . org-roam-buffer-toggle)
;; ("C-c n o" . org-open-at-point)
;; ("C-c n d" . org-roam-dailies-capture-today)
;; ("C-c n T" . org-roam-dailies-goto-today)
;; ("C-M-i" . completion-at-point))))
)
;; (:map org-roam-dailies-map
;; (map!
;; "\C-c n T" 'org-roam-dailies-goto-today
;; "\C-c n d" 'org-roam-dailies-capture-today))
(setq org-roam-dailies-capture-templates
'(("d" "default" entry
"* %?"
:target (file+head "journal-%<%Y>.org" "#+TITLE: %<%Y-%m-%d>\n"))))
;; one file org
(defvar org-gtd-file "~/Nextcloud/PRIVE/13_Org/DRI.org")
;; Open DRI.org when I hit C-c g
(defun gtd ()
"Open the GTD file."
(interactive)
(find-file org-gtd-file))
;; This seems like a good basic set of keywords to start out with:
(setq org-todo-keywords '((type "TODO" "En cours" "WAIT" "CANCELED" "DONE")))
(setf org-todo-keyword-faces '(("TODO" . (:foreground "cyan" :background "steelblue" :bold t :weight bold))
("En cours" . (:foreground "yellow" :background "red" :bold t :weight bold))
("En attente de réponse" . (:foreground "yellow" :background "magenta2" :bold t :weight bold))
("CANCELED" . (:foreground "gray" :background "dime grey" :bold t :weight bold))
("DONE" . (:foreground "gray50" :background "gray30"))))
;; tags
(setq org-tag-alist '(("DEVIS" . ?d) ("PROJETS" . ?p) ("CLIENT" . ?c) ("PROSPECT" . ?o) ("INTERNE" . ?i) ("AO" . ?a) ("PJ" . ?z) ("AVV" . ?v) ("PERSO" . ?z)))
(setq org-tag-faces
'(
("DEVIS" . (:foreground "OrangeRed" :weight bold))
("PJ" . (:foreground "brightyellow" :weight bold))
("PROJET" . (:foreground "IndianRed1" :weight bold))
("INTERNE" . (:foreground "LimeGreen" :weight bold))
("CLIENT" . (:foreground "Orange" :weight bold))
("PROSPECT" . (:foreground "MediumPurple3" :weight bold))
("AO" . (:foreground "HotPink2" :weight bold))
("PERSO" . (:foreground "firebrick" :weight bold))
)
)
;;; Org-journal
;; https://github.com/bastibe/org-journal
;; C-c C-j
;;(require 'org-journal)
;;(setq org-journal-date-prefix "#+TITLE: "
;; org-journal-carryover-items "-TODO=\"DONE\""
;; org-journal-time-prefix "* "
;; org-journal-date-format "%a, %Y-%m-%d"
;; org-journal-file-format "%Y-%m-%d-journal.org"
;; org-journal-dir "/home/alexandre/Nextcloud/PRIVE/13_Org/journal/")

View File

@ -0,0 +1 @@
/home/alexandre/git/nixos-config/hosts/dell-5590/home-manager/

View File

@ -2,7 +2,6 @@
imports = [ imports = [
./packages.nix ./packages.nix
./gnupg.nix ./gnupg.nix
./git.nix
./variables.nix ./variables.nix
./starship.nix ./starship.nix
./i3status.nix ./i3status.nix
@ -10,11 +9,11 @@
./mails.nix ./mails.nix
./dunst.nix ./dunst.nix
./bat.nix ./bat.nix
./kdeconnect.nix
# ./redshift.nix # ./redshift.nix
../../../modules/neovim.nix # ../../../modules/neovim.nix
../../../modules/rust.nix ../../../modules/rust.nix
../../../modules/tmux.nix ../../../modules/tmux.nix
../../../modules/git.nix
]; ];
home.keyboard = { home.keyboard = {
layout = "fr"; layout = "fr";
@ -23,9 +22,9 @@
xdg.configFile = { xdg.configFile = {
"i3/config".source = ./configs/i3config; "i3/config".source = ./configs/i3config;
}; };
xdg.configFile = { # xdg.configFile = {
"Nextcloud/nextcloud.cfg".source = ./configs/nextcloud.cfg; # "Nextcloud/nextcloud.cfg".source = ./configs/nextcloud.cfg;
}; # };
xsession.numlock.enable = true; xsession.numlock.enable = true;
home.file = { home.file = {
"./.config/zellij/config.yaml" = { "./.config/zellij/config.yaml" = {

View File

@ -0,0 +1,10 @@
{ config, pkgs, ... }:{
programs.i3status-rust = {
enable = true;
};
xdg.configFile = {
"i3status-rust/bar.toml".source = ./configs/i3status-rust.toml;
};
}

View File

@ -56,18 +56,18 @@
drawio drawio
lsd lsd
vagrant vagrant
zellij
guake guake
dig dig
vlc vlc
ferdi ferdi
pinta pinta
openvpn_24 openvpn
networkmanager-openvpn networkmanager-openvpn
python39Packages.grip python39Packages.grip
linphone linphone
graphviz graphviz
evince evince
kdeconnect
]; ];
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
"ferdi-5.8.1" "ferdi-5.8.1"

View File

@ -33,8 +33,6 @@
shellAliases = { shellAliases = {
ll = "ls -l"; ll = "ls -l";
ls = "lsd"; ls = "lsd";
#vi = "nvim";
#vim = "nvim";
cat = "bat"; cat = "bat";
sysrs = "sudo nixos-rebuild switch"; sysrs = "sudo nixos-rebuild switch";
sysup = "sudo nixos-rebuild switch --upgrade"; sysup = "sudo nixos-rebuild switch --upgrade";
@ -159,12 +157,6 @@
]; ];
}; };
# run garbage collector at 19h00 everyday
# and remove stuff older than 60 days
# nix.gc.automatic = true;
# nix.gc.dates = "19:00";
# nix.gc.persistent = true;
# nix.gc.options = "--delete-older-than 60d";
nix.settings.auto-optimise-store = true; nix.settings.auto-optimise-store = true;
nix.gc = { nix.gc = {
automatic = true; automatic = true;
@ -174,7 +166,7 @@ nix.settings.auto-optimise-store = true;
}; };
# clean /tmp at boot # clean /tmp at boot
boot.cleanTmpDir = true; boot.tmp.cleanOnBoot = true;
nixpkgs.config = { nixpkgs.config = {
allowUnfree = true; allowUnfree = true;
@ -189,7 +181,7 @@ nix.settings.auto-optimise-store = true;
TERMINAL = "xfce4-terminal"; TERMINAL = "xfce4-terminal";
PRIVATE_BROWSER = "firefox -private"; PRIVATE_BROWSER = "firefox -private";
}; };
environment.systemPackages = [ pkgs.openvpn_24 ];
users = { users = {
users.ntp.group = "ntp"; users.ntp.group = "ntp";
groups.ntp = {}; groups.ntp = {};

View File

@ -20,5 +20,6 @@
utf8proc utf8proc
pam_u2f pam_u2f
zlib zlib
openvpn
]; ];
} }

View File

@ -78,7 +78,6 @@
desktopManager = { desktopManager = {
xterm.enable = false; xterm.enable = false;
xfce.enable = true; xfce.enable = true;
xfce.thunarPlugins = with pkgs; [ xfce.thunar-volman xfce.thunar-archive-plugin ];
}; };
}; };

View File

@ -1,86 +0,0 @@
{ config, pkgs, ... }:{
programs.i3status-rust = {
enable = true;
bars = {
bottom = {
blocks = [
{
block = "disk_space";
path = "/";
alias = "/";
info_type = "available";
unit = "GB";
interval = 60;
warning = 20.0;
alert = 10.0;
}
{
block = "memory";
display_type = "memory";
format_mem = "{mem_used_percents}";
format_swap = "{swap_used_percents}";
}
{
block = "cpu";
interval = 1;
}
# {
# block = "load";
# interval = 1;
# format = "{1m}";
# }
{
block = "music";
buttons = [ "play" "next" ];
max_width = 20;
dynamic_width = true;
hide_when_empty = true;
}
{
block = "sound";
headphones_indicator = true;
on_click = "pavucontrol";
}
{
block = "net";
device = "enp0s20f0u6u1i5";
interval = 5;
format = "{graph_up}{graph_down}";
}
{
block = "net";
interval = 5;
device = "tun0";
hide_missing = true;
}
{
block = "net";
interval = 5;
device = "wlp2s0";
format = "{ssid} {signal_strength} {ip} {speed_down;K*b}";
hide_missing = true;
}
{
block = "backlight";
}
{
block = "battery";
}
{
block = "time";
interval = 60;
format = "%a %d/%m %R";
}
# {
# block = "Kdeconnect";
# format = " $icon {$bat_icon $bat_charge |}{$notif_icon |}{$network_icon$network_strength $network_type |}";
# bat_good = 101;
# }
];
icons = "material-nf";
theme = "nord-dark";
};
};
};
}

View File

@ -1,15 +0,0 @@
{ pkgs, ... }: {
services.kdeconnect = {
enable = true;
};
networking.firewall = {
enable = true;
allowedTCPPortRanges = [
{ from = 1714; to = 1764; } # KDE Connect
];
allowedUDPPortRanges = [
{ from = 1714; to = 1764; } # KDE Connect
];
};
}

View File

@ -6,6 +6,32 @@
userName = "Alexandre LUCAZEAU"; userName = "Alexandre LUCAZEAU";
aliases = { aliases = {
ignore = "!gi() { curl -sL https://www.toptal.com/developers/gitignore/api/$@ ;}; gi"; ignore = "!gi() { curl -sL https://www.toptal.com/developers/gitignore/api/$@ ;}; gi";
aa = "add --all";
b = "branch -v";
bd = "branch -d";
bD = "branch -D";
br = "branch";
ci = "commit";
cim = "commit -m";
cima = "commit -am";
clr = "rm -r --cached";
co = "checkout";
cp = "cherry-pick -x";
d = "diff -w";
dc = "diff --cached";
nb = "checkout -b";
oups = "commit --amend --no-edit";
r = "remote -v";
rh = "reset --hard";
st = "status -sb";
t = "tag -l";
unstage = "reset HEAD";
uncommit = "reset --soft HEAD^";
pushfl = "push --force-with-lease";
lg = "lg1";
lg1 = "lg1-specific --all";
lg2 = "lg2-specific --all";
lg3 = "lg3-specific --all";
}; };
extraConfig = { extraConfig = {
"color" = { "color" = {

View File

@ -1,4 +1,4 @@
{ pkgs, ... }: { { pkgs, config, ... }: {
programs.neovim = { programs.neovim = {
enable = true ; enable = true ;
viAlias = true; viAlias = true;

13
modules/paperless.nix Normal file
View File

@ -0,0 +1,13 @@
{ config, pkgs, lib, ... }:
{
services.paperless = {
enable = true;
address = "0.0.0.0";
port = 58080;
extraConfig.PAPERLESS_OCR_LANGUAGE = "fr+eng";
};
systemd.services.paperless-scheduler.after = ["var-lib-paperless.mount"];
systemd.services.paperless-consumer.after = ["var-lib-paperless.mount"];
systemd.services.paperless-web.after = ["var-lib-paperless.mount"];
}