A new start

This commit is contained in:
Andrea Ciceri 2021-09-29 21:37:59 +02:00
commit 72271e8cae
78 changed files with 2472 additions and 0 deletions

View file

@ -0,0 +1,5 @@
{
programs.bat = {
enable = true;
};
}

View file

@ -0,0 +1,7 @@
{ pkgs, ... }:
{
programs.chromium = {
enable = true;
package = pkgs.ungoogled-chromium;
};
}

View file

@ -0,0 +1,12 @@
{
programs.direnv = {
enable = true;
config = {
warn_timeout = "60s"; # default was 5s
};
nix-direnv = {
enable = true;
enableFlakes = true;
};
};
}

View file

@ -0,0 +1,41 @@
{ pkgs, ... }:
{
home.file."emacs" = {
recursive = true;
source = ./emacs.d;
target = ".emacs.d";
};
programs.emacs = {
enable = true;
package =
let
myEmacs = pkgs.emacsPgtkGcc;
emacsWithPackages = (pkgs.emacsPackagesFor myEmacs).emacsWithPackages;
in
emacsWithPackages (
epkgs: (
with epkgs.melpaStablePackages; [ ]
) ++ (
with epkgs.melpaPackages; [
all-the-icons
use-package
evil
evil-collection
projectile
magit
fira-code-mode
nix-mode
lispy
lsp-mode
dap-mode
which-key
]
) ++ (
with epkgs.elpaPackages; [
modus-themes
]
) ++ [ ]
);
};
}

View file

@ -0,0 +1,28 @@
(use-package modus-themes
:init
(setq
modus-themes-region '(bg-only no-extend))
(modus-themes-load-themes)
:config
(modus-themes-load-vivendi)
:bind ("<f5>" . modus-themes-toggle)
)
(use-package fira-code-mode
:custom (fira-code-mode-disabled-ligatures '(":")) ;; List of ligatures to turn off
:config (global-fira-code-mode))
(defalias 'yes-or-no-p 'y-or-n-p)
(setq use-dialog-box nil
display-time-format "%H:%M"
mouse-autoselect-window 't
inhibit-startup-screen t)
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
(fringe-mode 1)
(display-time-mode 1)
(provide 'aesthetics)

View file

@ -0,0 +1,19 @@
(use-package evil
:init
(setq evil-want-keybinding nil)
:config
(progn
(evil-mode 1) ; globally enable evil-mode except for the following modes
(mapcar (lambda (mode) (evil-set-initial-state mode 'emacs))
'(vterm-mode
eshell-mode
dired-mode
))))
;; (use-package evil-collection
;; ; :after (evil company-mode vterm)
;; :config
;; (evil-collection-init))
(provide 'config-evil)

View file

@ -0,0 +1,26 @@
(use-package lsp-mode
:init
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
(setq lsp-keymap-prefix "C-c l")
:hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode)
(nix-mode . lsp)
;; if you want which-key integration
(lsp-mode . lsp-enable-which-key-integration))
:commands lsp)
;; optionally
(use-package lsp-ui :commands lsp-ui-mode)
;; if you are helm user
(use-package helm-lsp :commands helm-lsp-workspace-symbol)
(use-package lsp-treemacs :commands lsp-treemacs-errors-list)
;; optionally if you want to use debugger
(use-package dap-mode)
;; (use-package dap-LANGUAGE) to load the dap adapter for your language
;; optional if you want which-key integration
(use-package which-key
:config
(which-key-mode))
(provide 'lsp)

View file

@ -0,0 +1,4 @@
(use-package nix-mode
:mode "\\.nix\\'")
(provide 'nix)

View file

@ -0,0 +1,10 @@
(add-to-list 'load-path "~/.emacs.d/config")
(setq gc-cons-threshold 100000000
read-process-output-max (* 1024 1024)
)
(require 'aesthetics)
(require 'config-evil)
(require 'lsp)
(require 'nix)

View file

@ -0,0 +1,6 @@
{
programs.exa = {
enable = true;
enableAliases = true;
};
}

View file

@ -0,0 +1,50 @@
{ pkgs, ... }:
{
programs.firefox = {
enable = true;
#package = (pkgs.firefox.override { extraNativeMessagingHosts = [
# pkgs.browserpass
# pkgs.passff-host
#]; });
#extensions = with pkgs.nur.repos.rycee.firefox-addons; [
#https-everywhere
#privacy-badger
#ublock-origin
#react-devtools
#org-capture
#clearurls
#browserpass # not working, manually installed passff
#firefox-color
#darkreader
#cookie-autodelete
# and manually installed ghost-text for atomic-chrome
#];
profiles.ccr = {
id = 0; # implies isDefault = true
settings = {
"browser.startup.homepage" = "https://google.it";
"browser.search.region" = "IT";
"browser.search.isUS" = false;
"distribution.searchplugins.defaultLocale" = "it-IT";
"general.useragent.locale" = "it-IT";
"browser.bookmarks.showMobileBookmarks" = true;
"browser.download.folderList" = 2;
"browser.download.lastDir" = "~/downloads/";
};
userChrome = ''
/* Hide tab bar in FF Quantum * /
@-moz-document url("chrome://browser/content/browser.xul") {
#TabsToolbar {
visibility: collapse !important;
margin-bottom: 21px !emportant;
}
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
visibility: collapse !important;
}
}
'';
userContent = "";
};
};
}

View file

@ -0,0 +1,18 @@
{
programs.foot = {
enable = true;
server.enable = true;
settings = {
main = {
term = "xterm-256color";
font = "Fira Code:size=11";
dpi-aware = "yes";
};
mouse = {
hide-when-typing = "yes";
};
};
};
}

View file

@ -0,0 +1,5 @@
{
programs.fzf = {
enable = true;
};
}

View file

@ -0,0 +1,22 @@
{
programs.git = {
enable = true;
extraConfig = {
pull.rebase = false;
};
userName = "aciceri";
userEmail = "andrea.ciceri@autistici.org";
signing = {
signByDefault = true;
key = "andrea.ciceri@autistici.org";
};
extraConfig = {
url = {
"ssh://git@github.com/" = { insteadOf = https://github.com/; };
};
};
};
}

View file

@ -0,0 +1,12 @@
{
services.gpg-agent = {
enable = true;
enableSshSupport = true;
sshKeys = [ "CE2FD0D9BECBD8876811714925066CC257413416" ];
};
programs.gpg = {
enable = true;
settings = { };
};
}

View file

@ -0,0 +1,11 @@
{ pkgs, ... }:
{
gtk = {
enable = true;
font.name = "DejaVu Sans";
iconTheme = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
};
};
}

View file

@ -0,0 +1,5 @@
{
services.lorri = {
enable = true;
};
}

View file

@ -0,0 +1,5 @@
{
programs.mpv = {
enable = true;
};
}

View file

@ -0,0 +1,5 @@
{
services.pass-secret-service.enable = true;
services.password-store-sync.enable = true;
programs.password-store.enable = true;
}

View file

@ -0,0 +1,5 @@
{
programs.qutebrowser = {
enable = true;
};
}

View file

@ -0,0 +1,129 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ wl-clipboard ];
wayland = {
windowManager.sway =
let
modifier = "Mod4";
in
{
enable = true;
config = {
modifier = modifier;
menu = "${pkgs.bemenu}/bin/bemenu-run -b -m 1 -p 'λ'";
output = {
HDMI-A-2 = {
#bg = "~/dotfiles/dotfiles/xorg/wallpaper.jpg fill";
};
};
#fonts = [ "Font Awesome" "Fira Code" ];
terminal = "${pkgs.foot}/bin/footclient";
bars = [
{
command = "${pkgs.waybar}/bin/waybar";
}
];
#startup = [{
#command = "systemctl --user restart redshift";
# always = true;
#}];
window.commands = [
{ criteria = { app_id = "mpv"; }; command = "sticky enable"; }
{ criteria = { app_id = "mpv"; }; command = "floating enable"; }
{ criteria = { title = "MetaMask Notification.*"; }; command = "floating enable"; }
];
input = {
"*" = {
xkb_layout = "us";
xkb_variant = "intl";
};
};
};
extraConfig = ''
bindsym ${modifier}+p move workspace to output right
#exec systemctl --user import-environment
#exec systemctl --user start graphical-session.target
'';
xwayland = true;
systemdIntegration = true;
};
};
programs.waybar = {
enable = true;
style = builtins.readFile ./style.css;
settings = [
{
layer = "top";
position = "top";
output = [ "HDMI-A-2" ];
modules-left = [
"sway/mode"
"sway/workspaces"
];
modules-center = [ ];
modules-right = [
"idle_inhibitor"
"tray"
"network"
"cpu"
"memory"
"pulseaudio"
"clock"
"backlight"
"battery"
];
modules = {
"sway/workspaces" = {
all-outputs = true;
disable-scroll-wraparound = true;
};
"sway/mode" = { tooltip = false; };
idle_inhibitor = {
format = "{icon}";
format-icons = {
activated = "unlocked";
deactivated = "locking";
};
};
pulseaudio = {
format = "vol {volume}%";
on-click-middle = "${pkgs.sway}/bin/swaymsg exec \"${pkgs.pavucontrol}/bin/pavucontrol\"";
};
network = {
format-wifi = "{essid} {signalStrength}% {bandwidthUpBits} {bandwidthDownBits}";
format-ethernet = "{ifname} eth {bandwidthUpBits} {bandwidthDownBits}";
};
cpu = {
interval = 2;
format = "cpu {load}% {usage}%";
};
memory.format = "mem {}%";
backlight = {
format = "nit {percent}%";
on-scroll-up = "${pkgs.light}/bin/light -A 2";
on-scroll-down = "${pkgs.light}/bin/light -U 2";
};
tray.spacing = 10;
clock.format = "{:%a %b %d %H:%M}";
battery = {
format = "bat {}";
};
};
}
];
};
}

View file

@ -0,0 +1,219 @@
* {
border: none;
border-radius: 5;
/* `otf-font-awesome` is required to be installed for icons */
/* font matches sway-config.nix */
font-family: "DejaVu Sans";
font-weight: bold;
font-size: 9pt;
min-height: 0;
}
window#waybar {
background-color: rgba(43, 48, 59, 0.5);
border-bottom: 3px solid rgba(100, 114, 125, 0.5);
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.2;
}
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
#workspaces button {
padding: 0 5px;
background-color: transparent;
color: #ffffff;
border-bottom: 3px solid transparent;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
box-shadow: inherit;
border-bottom: 3px solid #ffffff;
}
#workspaces button.current_output {
border-bottom: 3px solid #64727D;
}
#workspaces button.focused {
background-color: #64727D;
}
#workspaces button.focused.current_output {
border-bottom: 3px solid #ffffff;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
border-bottom: 3px solid #ffffff;
}
#clock,
#battery,
#cpu,
#memory,
#temperature,
#backlight,
#network,
#pulseaudio,
#custom-media,
.srht-failed,
.srht-success,
#tray,
#mode,
#idle_inhibitor,
#mpd {
padding: 0 10px;
margin: 0 4px;
color: #ffffff;
}
#clock {
background-color: #000000;
}
#battery {
background-color: #ffffff;
color: #000000;
}
#battery.charging {
color: #ffffff;
background-color: #26A65B;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #000000;
}
#cpu {
background-color: #06989A;
}
#memory {
background-color: #2980b9;
}
#backlight {
background-color: #555753;
}
#network {
background-color: #4E9A06;
}
#network.disconnected {
background-color: #f53c3c;
}
#pulseaudio {
background-color: #75507B;
}
#pulseaudio.muted {
background-color: #90b1b1;
color: #2a5c45;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
}
#tray {
background-color: #C4A000;
}
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
.srht-success {
background-color: #4E9A06;
}
.srht-failed {
background-color: #f53c3c;
}

View file

@ -0,0 +1,5 @@
{
programs.vim = {
enable = true;
};
}

View file

@ -0,0 +1,23 @@
{ pkgs, ... }:
{
# only purpose of this is to make vscode login to Github
services.gnome-keyring = {
enable = true;
};
programs.vscode = {
enable = true;
userSettings = {
"update.channel" = "none";
"editor"."formatOnSave" = true;
"window"."menuBarVisibility" = "classic";
"[nix]"."editor.tabSize" = 2;
"nix"."enableLanguageServer" = true;
};
extensions = with pkgs.vscode-extensions; [
eamodio.gitlens
jnoortheen.nix-ide
];
};
}

View file

@ -0,0 +1,7 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.xdg-utils ];
xdg = {
enable = true;
};
}

View file

@ -0,0 +1,5 @@
{
programs.zathura = {
enable = true;
};
}

View file

@ -0,0 +1,58 @@
{ pkgs, ... }:
{
programs.zsh = {
enable = true;
enableAutosuggestions = true;
enableCompletion = true;
autocd = true;
plugins = [
{
name = "nix-zsh-completions";
src = pkgs.nix-zsh-completions;
file = "share/zsh/plugins/nix/nix-zsh-completions.plugin.zsh";
}
{
name = "spaceship";
file = "share/zsh/themes/spaceship.zsh-theme";
src = pkgs.spaceship-prompt;
}
{
name = "zsh-fzf-tab";
file = "share/fzf-tab/fzf-tab.plugin.zsh";
src = pkgs.zsh-fzf-tab;
}
{
name = "fast-zsh-syntax-highlighting";
file = "share/zsh/site-functions/fast-syntax-highlighting.plugin.zsh";
src = pkgs.zsh-fast-syntax-highlighting;
}
];
oh-my-zsh = {
enable = true;
plugins = [
"git"
"sudo"
"command-not-found"
"colored-man-pages"
"colorize"
];
};
shellAliases = {
"screenshot" = "scrot '~/shots/%F_%T_$wx$h.png' -e 'xclip -selection clipboard -target image/png -i $f' -s";
"pass-clone" = "[ -d .password-store ] && echo 'Password store archive already exists' || git clone git@git.sr.ht:~zrsk/pass ~/.password-store";
"getpass" = "pass show $(find .password-store/ -name \"*.gpg\" | sed \"s/\\.password-store\\/\\(.*\\)\\.gpg$/\\1/g\" | fzf) | wl-copy; ((sleep 60 && wl-copy --clear) &)";
"cat" = "bat";
"em" = "emacsclient -c";
"emnw" = "emacsclient -c -nw";
};
localVariables = {
PASSWORD_STORE_DIR = "/home/ccr/.password-store";
SPACESHIP_TIME_SHOW = "true";
SPACESHIP_USER_SHOW = "always";
SPACESHIP_HOST_SHOW = "always";
EDITOR = "vim";
NIX_BUILD_SHELL = "${pkgs.zsh-nix-shell}/scripts/buildShellShim.zsh";
PROMPT = "\\\${IN_NIX_SHELL:+[nix-shell] }$PROMPT";
};
};
}