diff --git a/Readme.md b/Readme.md index e498d33..cb5376f 100644 --- a/Readme.md +++ b/Readme.md @@ -1,22 +1,26 @@ # Dotfiles ## Overview + All my dotfiles, easily installable using the install script. The scripts checks if a file already exists there before overwriting ! -## To do : +## To do + +- [x] screenshots : grim -g "$(slurp)" - [x] git defaults - [x] kitty - - [x] theme - - [x] remove annoying question on closing - - [x] polish tab/panes shortcuts -- [ ] sessionizer (via kitty or lazyvim) (or both ?) + - [x] theme + - [x] remove annoying question on closing + - [x] polish tab/panes shortcuts + - [x] remove shift key from shortcuts to avoid missclicks or re enable confirmation +- [ ] sessionizer -> use fzf and just open it normally, dont care about saving sessions for now - [ ] hyprland - [x] default functionality - [x] borders - [x] xdg-portal - - [ ] multi gpu on desktop ? + - [ ] multi gpu on desktop ? -> just let steam handle that ? - [x] hyprlock - [ ] lazyvim - [x] remove enter in blink @@ -25,18 +29,21 @@ The scripts checks if a file already exists there before overwriting ! - [ ] markdown - make it less annoying - [x] add greeter - [x] bar -- [ ] statusBar +- [x] statusBar - [x] works - - [ ] make battery conditional ? - - [ ] fix small annoying artifact since installing fonts + - [x] make battery depend on a var -> make a config for laptop and a config for pc + - [x] fix small annoying artifact since installing fonts (make sure we use mono font) - [ ] notifications + - [ ] auto dismiss after a moment or make dismiss keybind ? + - [ ] get list of previous notifications in fzf and open them ? - [x] add per folder sudo when needed on install script - [ ] screen sharing works for zoom - [x] way to record videos with push to record for easy edits - [ ] all dependencies in a list to install everything (via pacman or yay) at once easily - [x] pacman - - [ ] yay -- [ ] add way to add export variables and aliases and scripts in bashrc/zshrc + - [ ] make script to install yay + - [x] yay +- [ ] add way to add export variables and aliases and scripts in bashrc/zshrc -> just symlink it duh - [ ] customize terminal a bit ? try fsh ? - [ ] floating terminal utilities (call wemenu, launching the chosen utility in a floating manager) - [ ] weather in floating terminal @@ -44,6 +51,10 @@ The scripts checks if a file already exists there before overwriting ! - [ ] qutebrowser - [ ] theme - [x] config file (just config file dont bother with rest) +- [ ] mail : sync thunderbird settings +- [ ] passwords : get passwords to clipboard via fzf and bitwarden cli + ## Usage + `./install.sh` NOTE: this is still work in progress, it does not work completely yet diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index 9aa8442..685a547 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -1,6 +1,6 @@ +env = PROFILE, laptop exec-once=systemctl --user start hyprpolkitagent exec-once=i3bar-river -exec-once="$HOME/dotfiles/scripts/background.sh" exec-once=hyprpaper #exec-once = /nix/store/lww2khz04qsc8prjp8l0haldwz15yivi-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target $mod=SUPER @@ -51,8 +51,12 @@ bind=$mod, RETURN, exec, kitty bind=$mod, Y, exec, foot yazi bind=$mod + SHIFT, Q, killactive bind=$mod, SPACE, togglefloating -bind=$mod, B, exec, "$HOME/dotfiles/scripts/background.sh" -bind=$mod, S, exec, "$HOME/dotfiles/scripts/lock.sh" +bind=$mod, B, exec, kitty --class Launcher -e $HOME/dotfiles/scripts/background +# bind=$mod, S, exec, "$HOME/dotfiles/scripts/lock.sh" TODO: make this call dmenu on the scripts folder + +# Lid +bindl=,switch:on:Lid Switch,exec,hyprctl dispatch dpms off && hyprctl dispatch exec hyprlock +bindl=,switch:off:Lid Switch,exec,hyprctl dispatch dpms on # Movement bind=$mod, F, fullscreen, 1 @@ -91,3 +95,7 @@ binde=, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle binde=, XF86MonBrightnessUp, exec, brightnessctl s +5% binde=, XF86MonBrightnessDown, exec, brightnessctl s 5%- bindl=, switch:off:3c3fceb90, exec, swaylock +bind=$mod SHIFT,SPACE, exec, hyprctl switchxkblayout all next + +# Others +bind=, PRINT, exec, grim -g "$(slurp)" diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf index ffe86b3..dab02c8 100644 --- a/config/hypr/hyprlock.conf +++ b/config/hypr/hyprlock.conf @@ -31,8 +31,7 @@ animations { background { monitor = - path = $BG - # path = $HOME/dotfiles/backgrounds/uwp4468846.jpeg + path = $HOME/dotfiles/backgrounds/wp14993271-bocchi-the-rock-4k-wallpapers.webp blur_passes = 0 } diff --git a/config/hypr/hyprpaper.conf b/config/hypr/hyprpaper.conf index e69de29..4def316 100644 --- a/config/hypr/hyprpaper.conf +++ b/config/hypr/hyprpaper.conf @@ -0,0 +1,6 @@ +preload = ~/dotfiles/backgrounds/wp11886253-bocchi-the-rock-hd-wallpapers.jpg + +wallpaper = ,~/dotfiles/backgrounds/wp11886253-bocchi-the-rock-hd-wallpapers.jpg + +#enable splash text rendering over the wallpaper +splash = true diff --git a/config/i3bar-river/config.toml b/config/i3bar-river/config.toml index 02a327a..e23d0b3 100644 --- a/config/i3bar-river/config.toml +++ b/config/i3bar-river/config.toml @@ -1,7 +1,7 @@ background = "#11111b" color = "#00ff00" -command = "i3status-rs ~/.config/i3status-rust/config.toml" -font = "pango:monospace 10" +command = "i3status-rs ~/.config/i3status-rust/${PROFILE}-config.toml" +font = "font pango: FontAwesome 12" height = 20 tag_bg = "#313244" tag_fg = "#cdd6f4" diff --git a/config/i3status-rust/config.toml b/config/i3status-rust/config.toml deleted file mode 100644 index 4c5abd7..0000000 --- a/config/i3status-rust/config.toml +++ /dev/null @@ -1,42 +0,0 @@ -[[block]] -block = "battery" -interval = 30 - -[[block]] -block = "net" -format = " $icon {$signal_strength $ssid|Wired connection}" -interval = 10 - -[[block]] -block = "disk_space" -interval = 300 - -[[block]] -block = "memory" -format = " $icon $mem_used_percents" -interval = 30 - -[[block]] -block = "cpu" - -[[block]] -block = "sound" -max_vol = 150 -show_volume_when_muted = true - -[[block]] -block = "sound" -device_kind = "source" -max_vol = 150 -show_volume_when_muted = true - -[[block]] -block = "time" -format = " $timestamp.datetime(f:' %d/%m %R') " -interval = 60 - -[icons] -icons = "material-nf" - -[theme] -theme = "ctp-mocha" diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf index b70bf3b..b4dbf52 100644 --- a/config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -67,6 +67,6 @@ map alt+4 goto_tab 4 map alt+5 goto_tab 5 map alt+enter new_window_with_cwd map alt+t new_tab_with_cwd -map alt+q close_window +map alt+shift+q close_window -confirm_os_window_close 0 +# confirm_os_window_close 0 diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json index 539ff7e..9de2193 100644 --- a/config/nvim/lazy-lock.json +++ b/config/nvim/lazy-lock.json @@ -1,42 +1,47 @@ { - "LazyVim": { "branch": "main", "commit": "25abbf546d564dc484cf903804661ba12de45507" }, - "LuaSnip": { "branch": "master", "commit": "66b5c2707e624dcd2cd3605676c64a2efe47e9d1" }, - "blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" }, + "LazyVim": { "branch": "main", "commit": "dc1ffa5bcb66f46284f91a8593dda5c7c54a1824" }, + "LuaSnip": { "branch": "master", "commit": "21e9fecfc07fb2cd707b6c7c3fa148550a34d053" }, + "SchemaStore.nvim": { "branch": "main", "commit": "e71cc0607284739892287f6a2d92753999179dcf" }, + "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, - "catppuccin": { "branch": "main", "commit": "fa42eb5e26819ef58884257d5ae95dd0552b9a66" }, - "conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" }, - "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, + "catppuccin": { "branch": "main", "commit": "af58927c55c9f3272c940ff02b3cee94a1249f26" }, + "clangd_extensions.nvim": { "branch": "main", "commit": "b67cc417d9020fb4b83d46662351b4d16894905e" }, + "conform.nvim": { "branch": "master", "commit": "fbcb4fa7f34bfea9be702ffff481a8e336ebf6ed" }, + "crates.nvim": { "branch": "main", "commit": "ac9fa498a9edb96dc3056724ff69d5f40b898453" }, + "flash.nvim": { "branch": "main", "commit": "2febce67ff9cf7638d2569d17c41af02c38401eb" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "4666d040b60d1dc0e474ccd9a3fd3c4d67b4767c" }, - "grug-far.nvim": { "branch": "main", "commit": "b3f9412b1ed76f14cfc68e1ee899873544330c80" }, + "gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" }, + "grug-far.nvim": { "branch": "main", "commit": "2e991081c0e653e151fc9e659514d7c2fc31d22a" }, "harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" }, - "haskell-snippets.nvim": { "branch": "master", "commit": "27ac316463b9807496cd03e65289d3e79aa23528" }, + "haskell-snippets.nvim": { "branch": "master", "commit": "06be2f61d2970a90e8c4db16ab8cd450233db5c1" }, "haskell-tools.nvim": { "branch": "master", "commit": "65d6993eba1a56bbd5211ef13a100d26ce3e644a" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, - "lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" }, + "lazydev.nvim": { "branch": "main", "commit": "e28ce52fc7ff79fcb76f0e79ee6fb6182fca90b9" }, + "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, - "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, - "mini.ai": { "branch": "main", "commit": "96cd250fdea1fec929a62c7432de73e0f59788cd" }, - "mini.icons": { "branch": "main", "commit": "94848dad1589a199f876539bd79befb0c5e3abf0" }, - "mini.pairs": { "branch": "main", "commit": "42407ccb80ec59c84e7c91d815f42ed90a8cc093" }, - "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" }, + "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, + "mini.ai": { "branch": "main", "commit": "11c57180bc9084089206e211ac7aa598bedc9673" }, + "mini.icons": { "branch": "main", "commit": "284798619aed9f4c1ac1b9417b9a5e3b4b85ef3a" }, + "mini.pairs": { "branch": "main", "commit": "b9aada8c0e59f2b938e98fbf4eae0799eba96ad9" }, + "mini.surround": { "branch": "main", "commit": "444e155147e2b5159dd28a65f9736254c16cb817" }, + "noice.nvim": { "branch": "main", "commit": "38c702be0d8fea81527ee6a73e1e834e72481193" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lint": { "branch": "master", "commit": "3c5e34c24834a67b1cb37600ab7663eefd2b0390" }, - "nvim-lspconfig": { "branch": "master", "commit": "dbdb80d3bd311989d21029c63918d67a786d5013" }, - "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "89ebe73cd2836db80a22d9748999ace0241917a5" }, - "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, - "persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" }, - "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "render-markdown.nvim": { "branch": "main", "commit": "b977c94b32afdcadb8e53ba33d5934d1937d4eab" }, - "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, - "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, - "telescope_hoogle": { "branch": "master", "commit": "5c2ae51bcf905a7101134a597e6f7be2dc05f975" }, - "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, - "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, - "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, - "ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" }, - "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } + "nvim-lint": { "branch": "master", "commit": "9da1fb942dd0668d5182f9c8dee801b9c190e2bb" }, + "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" }, + "nvim-treesitter": { "branch": "main", "commit": "0606c7a9dcaa5c5beee0b0f09043e9fdd1ba0a68" }, + "nvim-treesitter-textobjects": { "branch": "main", "commit": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931" }, + "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, + "persistence.nvim": { "branch": "main", "commit": "51eef57272742b773468949f6bd0503ec3f83874" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "render-markdown.nvim": { "branch": "main", "commit": "475d3ad8cae486b0df6fc6050cf5b5ea1de42db8" }, + "rustaceanvim": { "branch": "master", "commit": "2f5afad4fc62c609dfd2ef4613999a0e8bddcccc" }, + "snacks.nvim": { "branch": "main", "commit": "839022302b470fe166b8b8b04add49bd32bdc01b" }, + "telescope_hoogle": { "branch": "master", "commit": "14be34fd5c464e3da0992ad094f157b0b8b098f9" }, + "todo-comments.nvim": { "branch": "main", "commit": "19d461ddd543e938eb22505fb03fa878800270b6" }, + "tokyonight.nvim": { "branch": "main", "commit": "d14614cbfc63b6037bfccd48bb982d2ad2003352" }, + "trouble.nvim": { "branch": "main", "commit": "c098362fe603d3922095e7db595961e020bdf2d0" }, + "ts-comments.nvim": { "branch": "main", "commit": "217ab9cc137fceb6659b53790bd25e608219abe1" }, + "venv-selector.nvim": { "branch": "main", "commit": "7fff64b5b1455207b9a9fd2ae8697cf9ac0b2a2d" }, + "which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" } } diff --git a/config/nvim/lazyvim.json b/config/nvim/lazyvim.json index 288f574..75a7eaf 100644 --- a/config/nvim/lazyvim.json +++ b/config/nvim/lazyvim.json @@ -1,12 +1,22 @@ { "extras": [ + "lazyvim.plugins.extras.coding.mini-surround", "lazyvim.plugins.extras.editor.harpoon2", + "lazyvim.plugins.extras.lang.clangd", + "lazyvim.plugins.extras.lang.docker", + "lazyvim.plugins.extras.lang.go", "lazyvim.plugins.extras.lang.haskell", - "lazyvim.plugins.extras.lang.markdown" + "lazyvim.plugins.extras.lang.json", + "lazyvim.plugins.extras.lang.markdown", + "lazyvim.plugins.extras.lang.python", + "lazyvim.plugins.extras.lang.rust", + "lazyvim.plugins.extras.lang.svelte", + "lazyvim.plugins.extras.lang.tailwind", + "lazyvim.plugins.extras.lang.typescript" ], "install_version": 8, "news": { - "NEWS.md": "10960" + "NEWS.md": "11866" }, "version": 8 } \ No newline at end of file diff --git a/config/nvim/lua/config/options.lua b/config/nvim/lua/config/options.lua index 3ea1454..8ba0ab8 100644 --- a/config/nvim/lua/config/options.lua +++ b/config/nvim/lua/config/options.lua @@ -1,3 +1,4 @@ -- Options are automatically loaded before lazy.nvim startup -- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua -- Add any additional options here +conceallevel = 0 diff --git a/install.sh b/install.sh index 7be189b..af5bca6 100755 --- a/install.sh +++ b/install.sh @@ -3,25 +3,30 @@ sources=("$PWD/config/" "$PWD/etc/" "$PWD/home/" "$PWD/qutebrowser/") targets=("$HOME/.config/" "/etc/" "$HOME/" "$HOME/.config/qutebrowser/") length=${#sources[@]} -packages="brightnessctl hyprland hyprlock hyprpaper i3status-rust kitty mpv neovim obs-studio qutebrowser ttc-iosevka ttf-nerd-fonts-symbols-mono yazi noto-fonts-emoji" +packages="brightnessctl hyprland hyprlock hyprpaper i3status-rust kitty mpv neovim obs-studio qutebrowser ttc-iosevka ttf-nerd-fonts-symbols-mono yazi noto-fonts-emoji i3status-rust" +yayPackages="i3bar-river" services="greetd" -# TODO: need to address need to run as sudo to add symlink to certain folders, maybe ask in outer loop when sudo is needed and set a variable pacman() { read -p "Install the following packages : $packages ? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || break - sudo pacman -S $packages + sudo pacman -Syu $packages } yay() { - # TODO: install yay, and install yay dependencies - echo yay + # NOTE: no confirmation, we consider user should read the files + sudo yay -Syu $packages } systemd() { read -p "Enable the following services : $services ? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || break sudo systemctl enable $services } - +install() { + pacman + yay + systemd + update +} update() { for ((i = 0; i < length; i++)); do @@ -43,4 +48,4 @@ update() { done } -systemd +update diff --git a/qutebrowser/config.py b/qutebrowser/config.py index 8fc746d..b18a9ed 100644 --- a/qutebrowser/config.py +++ b/qutebrowser/config.py @@ -13,7 +13,7 @@ ## This is here so configs done via the GUI are still loaded. ## Remove it to not load settings done via the GUI. -# config.load_autoconfig(True) +config.load_autoconfig(True) ## Aliases for commands. The keys of the given dictionary are the ## aliases, while the values are the commands they map to. @@ -1562,7 +1562,7 @@ c.auto_save.session = False # c.keyhint.radius = 6 ## Level for console (stdout/stderr) logs. Ignored if the `--loglevel` or -## `--debug` CLI flags are used. +## --debug` CLI flags are used. ## Type: LogLevel ## Valid values: ## - vdebug @@ -1853,7 +1853,7 @@ c.auto_save.session = False ## - tr-TR: Turkish (Turkey) ## - uk-UA: Ukrainian (Ukraine) ## - vi-VN: Vietnamese (Viet Nam) -c.spellcheck.languages = ["fr-FR","en-US"] +c.spellcheck.languages = [] ## Padding (in pixels) for the statusbar. ## Type: Padding diff --git a/scripts/background.sh b/scripts/background.sh deleted file mode 100644 index e0da297..0000000 --- a/scripts/background.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -WALLPAPER_DIR="$HOME/dotfiles/backgrounds/" -CURRENT_WALL=$(hyprctl hyprpaper listloaded) - -# Get a random wallpaper that is not the current one -WALLPAPER=$(find "$WALLPAPER_DIR" -type f ! -name "$(basename "$CURRENT_WALL")" | shuf -n 1) - -# Apply the selected wallpaper -hyprctl hyprpaper reload ,"$WALLPAPER" diff --git a/scripts/lock.sh b/scripts/lock.sh deleted file mode 100644 index 30da30e..0000000 --- a/scripts/lock.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -WALLPAPER_DIR=$HOME/dotfiles/backgrounds/ -WALLPAPER=$(find "$WALLPAPER_DIR" | shuf -n 1) -BG=$WALLPAPER hyprlock diff --git a/scripts/meteo.sh b/scripts/meteo.sh deleted file mode 100644 index e1436ab..0000000 --- a/scripts/meteo.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -locations="Vicques\nLausanne\nBern" -selected=$(echo -e $locations | fzf) -curl wttr.in/$selected