From 0da9f40d33a1bf307ce14fdf23ab58498f91cfab Mon Sep 17 00:00:00 2001 From: vanten-s Date: Mon, 11 Mar 2024 21:59:50 +0100 Subject: [PATCH] Hiii :3 --- dotfiles/fuzzel/fuzzel.ini | 14 ++ dotfiles/hypr/hyprland.conf | 175 +++++++++++++++++++++++++ dotfiles/kitty/kitty.conf | 3 + dotfiles/kitty/mocha.conf | 80 ++++++++++++ dotfiles/nvim/after/catppuccin.lua | 15 +++ dotfiles/nvim/after/init.lua | 6 + dotfiles/nvim/after/lsp.lua | 69 ++++++++++ dotfiles/nvim/after/telescope.lua | 10 ++ dotfiles/nvim/after/treesitter.lua | 34 +++++ dotfiles/nvim/init.lua | 13 ++ dotfiles/nvim/lazy.lua | 12 ++ dotfiles/nvim/plugins.lua | 13 ++ dotfiles/waybar/config.jsonc | 197 +++++++++++++++++++++++++++++ dotfiles/waybar/mocha.css | 37 ++++++ dotfiles/waybar/style.css | 93 ++++++++++++++ dotfiles/zshrc | 31 +++++ flake.lock | 48 +++++++ flake.nix | 29 +++++ home.nix | 25 ++++ 19 files changed, 904 insertions(+) create mode 100644 dotfiles/fuzzel/fuzzel.ini create mode 100644 dotfiles/hypr/hyprland.conf create mode 100644 dotfiles/kitty/kitty.conf create mode 100644 dotfiles/kitty/mocha.conf create mode 100644 dotfiles/nvim/after/catppuccin.lua create mode 100644 dotfiles/nvim/after/init.lua create mode 100644 dotfiles/nvim/after/lsp.lua create mode 100644 dotfiles/nvim/after/telescope.lua create mode 100644 dotfiles/nvim/after/treesitter.lua create mode 100644 dotfiles/nvim/init.lua create mode 100644 dotfiles/nvim/lazy.lua create mode 100644 dotfiles/nvim/plugins.lua create mode 100644 dotfiles/waybar/config.jsonc create mode 100644 dotfiles/waybar/mocha.css create mode 100644 dotfiles/waybar/style.css create mode 100644 dotfiles/zshrc create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home.nix diff --git a/dotfiles/fuzzel/fuzzel.ini b/dotfiles/fuzzel/fuzzel.ini new file mode 100644 index 0000000..b504155 --- /dev/null +++ b/dotfiles/fuzzel/fuzzel.ini @@ -0,0 +1,14 @@ +fields=name,generic,comment,categories,filename,keywords +font=RobotoMono Nerd Font:weight=bold:size=10 + +[border] +radius=20 + +[colors] +background=1e1e2edd +text=cdd6f4ff +match=f38ba8ff +selection=585b70ff +selection-match=f38ba8ff +selection-text=cdd6f4ff +border=b4befeff diff --git a/dotfiles/hypr/hyprland.conf b/dotfiles/hypr/hyprland.conf new file mode 100644 index 0000000..7096f6e --- /dev/null +++ b/dotfiles/hypr/hyprland.conf @@ -0,0 +1,175 @@ +monitor = eDP-1,1920x1200,0x0,1 + +xwayland { + force_zero_scaling = true +} + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +exec-once = waybar & waypaper --restore + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# Some default env vars. +env = XCURSOR_SIZE,100 + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = se + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 10 + border_size = 4 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + layout = dwindle + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + + blur { + enabled = true + size = 5 + passes = 2 + } + + drop_shadow = yes + shadow_range = 10 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, myBezier +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +misc { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = -1 # Set to 0 to disable the anime mascot wallpapers +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +device:epic-mouse-v1 { + sensitivity = -0.5 +} + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, RETURN, exec, kitty +bind = $mainMod, Q, killactive, +bind = $mainMod, M, exit, +bind = $mainMod, E, exec, dolphin +bind = $mainMod, V, togglefloating, +bind = $mainMod, R, exec, fuzzel +bind = $mainMod, D, exec, dmenu_path | fuzzel -d | sh +bind = $mainMod SHIFT, P, exec, ~/scripts/password-select.sh +bind = $mainMod SHIFT, U, exec, ~/scripts/usernames.sh +bind = $mainMod SHIFT, S, exec, grimblast save area ss.png +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, F, fakefullscreen + +# Move focus with mainMod + arrow keys +bind = $mainMod, H, movefocus, l +bind = $mainMod, L, movefocus, r +bind = $mainMod, K, movefocus, u +bind = $mainMod, J, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 +bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 +bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 +bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 +bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 +bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 +bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 +bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 +bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 +bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 + +bind = $mainMod, A, togglespecialworkspace, pulsemixer +bind = $mainMod SHIFT, A, movetoworkspacesilent, special:pulsemixer + +bind = $mainMod, T, togglespecialworkspace, terminal +bind = $mainMod SHIFT, T, movetoworkspacesilent, special:terminal + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow diff --git a/dotfiles/kitty/kitty.conf b/dotfiles/kitty/kitty.conf new file mode 100644 index 0000000..b1d0a23 --- /dev/null +++ b/dotfiles/kitty/kitty.conf @@ -0,0 +1,3 @@ +font_family RobotoMono Nerd Font +background_opacity 0.87 +include mocha.conf diff --git a/dotfiles/kitty/mocha.conf b/dotfiles/kitty/mocha.conf new file mode 100644 index 0000000..b345a47 --- /dev/null +++ b/dotfiles/kitty/mocha.conf @@ -0,0 +1,80 @@ +# vim:ft=kitty + +## name: Catppuccin Kitty Mocha +## author: Catppuccin Org +## license: MIT +## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf +## blurb: Soothing pastel theme for the high-spirited! + + + +# The basic colors +foreground #CDD6F4 +background #1E1E2E +selection_foreground #1E1E2E +selection_background #F5E0DC + +# Cursor colors +cursor #F5E0DC +cursor_text_color #1E1E2E + +# URL underline color when hovering with mouse +url_color #F5E0DC + +# Kitty window border colors +active_border_color #B4BEFE +inactive_border_color #6C7086 +bell_border_color #F9E2AF + +# OS Window titlebar colors +wayland_titlebar_color #1E1E2E +macos_titlebar_color #1E1E2E + +# Tab bar colors +active_tab_foreground #11111B +active_tab_background #CBA6F7 +inactive_tab_foreground #CDD6F4 +inactive_tab_background #181825 +tab_bar_background #11111B + +# Colors for marks (marked text in the terminal) +mark1_foreground #1E1E2E +mark1_background #B4BEFE +mark2_foreground #1E1E2E +mark2_background #CBA6F7 +mark3_foreground #1E1E2E +mark3_background #74C7EC + +# The 16 terminal colors + +# black +color0 #45475A +color8 #585B70 + +# red +color1 #F38BA8 +color9 #F38BA8 + +# green +color2 #A6E3A1 +color10 #A6E3A1 + +# yellow +color3 #F9E2AF +color11 #F9E2AF + +# blue +color4 #89B4FA +color12 #89B4FA + +# magenta +color5 #F5C2E7 +color13 #F5C2E7 + +# cyan +color6 #94E2D5 +color14 #94E2D5 + +# white +color7 #BAC2DE +color15 #A6ADC8 diff --git a/dotfiles/nvim/after/catppuccin.lua b/dotfiles/nvim/after/catppuccin.lua new file mode 100644 index 0000000..6a1d18a --- /dev/null +++ b/dotfiles/nvim/after/catppuccin.lua @@ -0,0 +1,15 @@ +require("catppuccin").setup({ + transparent_background = true, + integrations = { + cmp = true, + nvimtree = true, + treesitter = true, + }, + custom_highlights = function(colors) + return { + LineNr = { fg = colors.overlay1 }, + } + end + +}) +vim.cmd.colorscheme "catppuccin" diff --git a/dotfiles/nvim/after/init.lua b/dotfiles/nvim/after/init.lua new file mode 100644 index 0000000..7d9187d --- /dev/null +++ b/dotfiles/nvim/after/init.lua @@ -0,0 +1,6 @@ +require('vanten.after.treesitter') +require('vanten.after.lsp') +require('vanten.after.telescope') +require('vanten.after.catppuccin') + +vim.keymap.set("n", "e", vim.cmd.Ex) diff --git a/dotfiles/nvim/after/lsp.lua b/dotfiles/nvim/after/lsp.lua new file mode 100644 index 0000000..aef3498 --- /dev/null +++ b/dotfiles/nvim/after/lsp.lua @@ -0,0 +1,69 @@ +local cmp = require'cmp' + +cmp.setup({ + snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. + -- require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + -- require('snippy').expand_snippet(args.body) -- For `snippy` users. + -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. + end, + }, + window = { + -- completion = cmp.config.window.bordered(), + -- documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'vsnip' }, -- For vsnip users. + -- { name = 'luasnip' }, -- For luasnip users. + -- { name = 'ultisnips' }, -- For ultisnips users. + -- { name = 'snippy' }, -- For snippy users. + }, { + { name = 'buffer' }, + }) +}) + +-- Set configuration for specific filetype. +cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). + }, { + { name = 'buffer' }, + }) +}) + +-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + } +}) + +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }) +}) + +-- Set up lspconfig. +local capabilities = require('cmp_nvim_lsp').default_capabilities() +require('lspconfig').rust_analyzer.setup { capabilities = capabilities } +require('lspconfig').dartls.setup { capabilities = capabilities } +require('lspconfig').html.setup { capabilities = capabilities } +require('lspconfig').cssls.setup { capabilities = capabilities } +require('lspconfig').eslint.setup { capabilities = capabilities } +require('lspconfig').bashls.setup { capabilities = capabilities } diff --git a/dotfiles/nvim/after/telescope.lua b/dotfiles/nvim/after/telescope.lua new file mode 100644 index 0000000..ea6e93d --- /dev/null +++ b/dotfiles/nvim/after/telescope.lua @@ -0,0 +1,10 @@ +require('telescope').setup{ + defaults = { + file_ignore_patterns = { "target/.*", "venv/.*" }, + winblend = 0; + } +} + +local builtin = require('telescope.builtin') +vim.keymap.set('n', 'ff', builtin.find_files, {}) +vim.keymap.set('n', 'fg', builtin.git_files, {}) diff --git a/dotfiles/nvim/after/treesitter.lua b/dotfiles/nvim/after/treesitter.lua new file mode 100644 index 0000000..71e4ac9 --- /dev/null +++ b/dotfiles/nvim/after/treesitter.lua @@ -0,0 +1,34 @@ +require'nvim-treesitter.configs'.setup { + -- A list of parser names, or "all" (the five listed parsers should always be installed) + ensure_installed = { "c", "lua", "vim", "vimdoc", "query" }, + + -- Install parsers synchronously (only applied to `ensure_installed`) + sync_install = false, + + -- Automatically install missing parsers when entering buffer + -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally + auto_install = true, + + ---- If you need to change the installation directory of the parsers (see -> Advanced Setup) + -- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")! + + highlight = { + enable = true, + disable = function(lang, buf) + local max_filesize = 100 * 1024 -- 100 KB + local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) + if ok and stats and stats.size > max_filesize then + return true + end + end, + + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + -- Using this option may slow down your editor, and you may see some duplicate highlights. + -- Instead of true it can also be a list of languages + additional_vim_regex_highlighting = false, + }, + indent = { + enable = true + }, +} diff --git a/dotfiles/nvim/init.lua b/dotfiles/nvim/init.lua new file mode 100644 index 0000000..a50815e --- /dev/null +++ b/dotfiles/nvim/init.lua @@ -0,0 +1,13 @@ +vim.g.mapleader = " " + +require('vanten.lazy') +require("lazy").setup("vanten.plugins") + +vim.api.nvim_command('set relativenumber') +vim.api.nvim_command('set number') +vim.api.nvim_command('set tabstop=4') +vim.api.nvim_command('set shiftwidth=4') +vim.api.nvim_command('set clipboard+=unnamedplus') + +require('vanten.after') + diff --git a/dotfiles/nvim/lazy.lua b/dotfiles/nvim/lazy.lua new file mode 100644 index 0000000..d14f916 --- /dev/null +++ b/dotfiles/nvim/lazy.lua @@ -0,0 +1,12 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) diff --git a/dotfiles/nvim/plugins.lua b/dotfiles/nvim/plugins.lua new file mode 100644 index 0000000..96849ae --- /dev/null +++ b/dotfiles/nvim/plugins.lua @@ -0,0 +1,13 @@ +return { + { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, + { 'nvim-telescope/telescope.nvim', tag = '0.1.5', dependencies = { 'nvim-lua/plenary.nvim' } }, + { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }, + { "neovim/nvim-lspconfig" }, + { 'hrsh7th/cmp-nvim-lsp' }, + { 'hrsh7th/cmp-buffer' }, + { 'hrsh7th/cmp-path' }, + { 'hrsh7th/cmp-cmdline' }, + { 'hrsh7th/nvim-cmp' }, + { 'hrsh7th/cmp-vsnip' }, + { 'hrsh7th/vim-vsnip' }, +} diff --git a/dotfiles/waybar/config.jsonc b/dotfiles/waybar/config.jsonc new file mode 100644 index 0000000..0699817 --- /dev/null +++ b/dotfiles/waybar/config.jsonc @@ -0,0 +1,197 @@ +// -*- mode: jsonc -*- +{ + // "layer": "top", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 20, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + "spacing": 4, // Gaps between modules (4px) + // Choose the order of the modules + "mode": "dock", + "modules-left": [ + "hyprland/workspaces", + "sway/mode", + "sway/scratchpad", + "custom/media" + ], + "modules-center": [ + "clock", + ], + "modules-right": [ + "pulseaudio", + "network", + "temperature", + "battery", + ], + // Modules configuration + "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": false, + "warp-on-scroll": false, + "active-only": false, + "format": "{icon}", + "persistent-workspaces": {"*": 9}, + "format-icons": { + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", + "7": "", + "8": "", + "9": "", + "urgent": "", + "focused": "", + "default": "" + }, + }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "sway/mode": { + "format": "{}" + }, + "sway/scratchpad": { + "format": "{icon} {count}", + "show-empty": false, + "format-icons": ["", ""], + "tooltip": true, + "tooltip-format": "{app}: {title}" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 5, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C ", + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-full": "{capacity}% {icon}", + "format-charging": "{capacity}% 󰂄", + "format-plugged": "{capacity}% ", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + "battery#bat2": { + "bat": "BAT2" + }, + "power-profiles-daemon": { + "format": "{icon}", + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "tooltip": true, + "format-icons": { + "default": "", + "performance": "", + "balanced": "", + "power-saver": "" + } + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "", + "format-ethernet": "{ipaddr}/{cidr} ", + "tooltip-format": "{ifname} via {gwaddr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "⚠", + "format-alt": "{ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}%  {format_source}", + "format-bluetooth": "{volume}%   {format_source}", + "format-bluetooth-muted": "{volume}%   {format_source}", + "format-muted": "{volume}%  {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "{volume}% ", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + } +} diff --git a/dotfiles/waybar/mocha.css b/dotfiles/waybar/mocha.css new file mode 100644 index 0000000..98e218a --- /dev/null +++ b/dotfiles/waybar/mocha.css @@ -0,0 +1,37 @@ +/* +* +* Catppuccin Mocha palette +* Maintainer: rubyowo +* +*/ + +@define-color base #1e1e2e; +@define-color mantle #181825; +@define-color crust #11111b; + +@define-color text #cdd6f4; +@define-color subtext0 #a6adc8; +@define-color subtext1 #bac2de; + +@define-color surface0 #313244; +@define-color surface1 #45475a; +@define-color surface2 #585b70; + +@define-color overlay0 #6c7086; +@define-color overlay1 #7f849c; +@define-color overlay2 #9399b2; + +@define-color blue #89b4fa; +@define-color lavender #b4befe; +@define-color sapphire #74c7ec; +@define-color sky #89dceb; +@define-color teal #94e2d5; +@define-color green #a6e3a1; +@define-color yellow #f9e2af; +@define-color peach #fab387; +@define-color maroon #eba0ac; +@define-color red #f38ba8; +@define-color mauve #cba6f7; +@define-color pink #f5c2e7; +@define-color flamingo #f2cdcd; +@define-color rosewater #f5e0dc; diff --git a/dotfiles/waybar/style.css b/dotfiles/waybar/style.css new file mode 100644 index 0000000..c22dcae --- /dev/null +++ b/dotfiles/waybar/style.css @@ -0,0 +1,93 @@ +@import "mocha.css"; + +window#waybar { + background: rgba(0, 0, 0, 0); + font-family: "Roboto Mono Nerd Font"; +} + +.modules-center { + border-radius: 1rem; + box-shadow: 3px 3px 2px #151515; + border: 3px solid @lavender; + margin: 0.5rem; + color: @text; + background-color: @base; +} + +#clock { + margin: 0.4rem; + padding: 0.3rem; +} + +.modules-left { + border-radius: 1rem; + box-shadow: 3px 3px 2px #151515; + border: 3px solid @lavender; + margin: 0.5rem; + color: @text; + background-color: @base; +} + +#workspaces button { + margin: 0.4rem; + padding: 0 9.5px 1px 6px; + background-color: @surface0; + color: @lavender; + border-radius: 1rem; +} + +#workspaces button.empty { + color: @overlay1; +} + +#workspaces button.active { + color: @green; +} + +.modules-right { + border-radius: 1rem; + box-shadow: 3px 3px 2px #151515; + border: 3px solid @lavender; + margin: 0.5rem; + color: @text; + background-color: @base; +} + +#pulseaudio { + padding: 0.5rem; + margin: 0.4em; + background-color: @surface0; + border-radius: 1rem; +} + +#network { + padding: 0.5rem; + padding-right: 1rem; + margin: 0.4em; + margin-left: 0; + background-color: @surface0; + border-radius: 1rem; +} + +#temperature { + padding: 0.5rem; + padding-right: 1rem; + margin: 0.4em; + margin-left: 0; + background-color: @surface0; + border-radius: 1rem; +} + +#battery { + padding: 0.5rem; + padding-right: 1rem; + margin: 0.4em; + margin-left: 0; + background-color: @surface0; + border-radius: 1rem; +} + +#battery.charging { + color: @green; +} + diff --git a/dotfiles/zshrc b/dotfiles/zshrc new file mode 100644 index 0000000..598ecfa --- /dev/null +++ b/dotfiles/zshrc @@ -0,0 +1,31 @@ +# Lines configured by zsh-newuser-install +HISTFILE=~/.histfile +HISTSIZE=1000 +SAVEHIST=1000 +setopt autocd +bindkey -v +# End of lines configured by zsh-newuser-install +# The following lines were added by compinstall +zstyle :compinstall filename '/home/svante/.zshrc' + +autoload -Uz compinit +compinit +# End of lines added by compinstall + +export TERM="xterm" + +# Shorthands +alias l='ls -l' +alias la='ls -a' +alias ll='ls -la' +alias v='vim' +alias c='clear' +alias e='exit' + +# Defaults +alias vim='nvim' +alias nix-shell='nix-shell --run zsh' + +autoload -U colors && colors +PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b " + diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..54225e5 --- /dev/null +++ b/flake.lock @@ -0,0 +1,48 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1710062421, + "narHash": "sha256-FiCNRfyUgJOLYIokLiFsfI7B+Zn9HDnOzFR3uVr5qsQ=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "36f873dfc8e2b6b89936ff3e2b74803d50447e0a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1709961763, + "narHash": "sha256-6H95HGJHhEZtyYA3rIQpvamMKAGoa8Yh2rFV29QnuGw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "3030f185ba6a4bf4f18b87f345f104e6a6961f34", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..ec1eb29 --- /dev/null +++ b/flake.nix @@ -0,0 +1,29 @@ +{ + description = "Home Manager configuration of svante"; + + inputs = { + # Specify the source of Home Manager and Nixpkgs. + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { nixpkgs, home-manager, ... }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in { + homeConfigurations."svante" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + + # Specify your home configuration modules here, for example, + # the path to your home.nix. + modules = [ ./home.nix ]; + + # Optionally use extraSpecialArgs + # to pass through arguments to home.nix + }; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..a4165da --- /dev/null +++ b/home.nix @@ -0,0 +1,25 @@ +{ config, pkgs, ... }: + +{ + home.username = "svante"; + home.homeDirectory = "/home/svante"; + home.stateVersion = "23.11"; + + home.packages = [ + pkgs.fortune + pkgs.htop + ]; + + home.file = { + ".config/fuzzel".source = dotfiles/fuzzel; + ".config/hypr".source = dotfiles/hypr; + ".config/kitty".source = dotfiles/kitty; + ".config/nvim/lua/vanten".source = dotfiles/nvim; + ".config/waybar".source = dotfiles/waybar; + ".zshrc".source = dotfiles/zshrc; + }; + + home.sessionVariables = { }; + + programs.home-manager.enable = true; +}